当前位置: 首页 > news >正文

ppt做的好的有哪些网站有哪些杭州优化排名哪家好

ppt做的好的有哪些网站有哪些,杭州优化排名哪家好,wamp做的网站外网怎么访问,买布做衣裳 在哪个网站买好冒泡排序 从第一个数据开始到第n-1个数据,依次和后面一个数据两两比较,数值小的在前。最终,最后一个数据(第n个数据)为最大值。从第一个数据开始到第n-2个数据,依次和后面一个数据两两比较,数值…

冒泡排序

  1. 从第一个数据开始到第n-1个数据,依次和后面一个数据两两比较,数值小的在前。最终,最后一个数据(第n个数据)为最大值。
  2. 从第一个数据开始到第n-2个数据,依次和后面一个数据两两比较,数值小的在前。最终,倒数第二个数据(第n-1个数据)为第二个最大值。
  3. 从第一个数据开始到第n-3个数据,依次和后面一个数据两两比较,数值小的在前。最终,倒数第三个数据(第n-2个数据)为第三个最大值。
  4. 最多重复操作n-1次。

时间复杂度:最好情况 O(n),最坏情况 O(n^{2}),平均情况 O(n^{2})

  • 若已是排好的,从开头到最后,两两比对,需要n-1次比对,无需交换,一轮结束,则时间约n,即 O(n)。
  • 若是乱序,则需最多n-1次重复操作,虽然每次重复操作的比对次数减1,但总时间约n^{2},即O(n^{2})。

空间复杂度:O(1)

  • 在原位置排序,只重复使用了用于交换的临时空间,不随数据量的变动而变动,空间使用为常量(1)。


C语言实现:(bubblesort.c)

#include <stdio.h>/* function prototype */
void bubble(int *, int);	// bubble sort
void traverse(int *, int);	// show element one by one/* main function */
int main(void)
{int arr[] = {4,2,6,9,5,1,3};int n = sizeof(arr) / sizeof(int);traverse(arr, n);bubble(arr, n);	printf("[ after bubble sort ] ");traverse(arr, n);return 0;
}/* subfunction */
void bubble(int *array, int length)		// bubble sort
{for(int i = length - 1; i > 0; i--){int ischange = 0;for(int j = 0; j < i; j++){if(array[j] > array[j+1]){int tmp = array[j];array[j] = array[j+1];array[j+1] = tmp;ischange = 1;}}if(ischange == 0) return ;}
}void traverse(int *array, int length)		// show element one by one
{printf("elements(%d): ", length);for(int k = 0; k < length; k++){printf("%d  ", array[k]);}printf("\n");
}

编译链接: gcc -o bubblesort bubblesort.c

执行可执行文件: ./bubblesort



选择排序

  1. 从第一个数据开始到最后,挑选最小值,放入第一个位置。
  2. 从第二个数据开始到最后,挑选最小值,放入第二个位置。
  3. 从第三个数据开始到最后,挑选最小值,放入第三个位置。
  4. 共重复操作n-1次。

时间复杂度:最好情况 O(n^{2}),最坏情况 O(n^{2}),平均情况 O(n^{2})

  • 从开头到最后,挑选最小值,需要n-1次比对。重复n-1次操作,虽然每次重复操作的比对次数减1,但总时间约n^{2},即O(n^{2})。

空间复杂度:O(1)

  • 在原位置排序,只重复使用了用于交换的临时空间,不随数据量的变动而变动,空间使用为常量(1)。


C语言实现:(selectsort.c)

#include <stdio.h>/* function prototype */
void select(int *, int); 	// select sort
void traverse(int *, int);	// show element one by one/* main function */
int main(void)
{int arr[] = {4,2,6,9,5,1,3};int n = sizeof(arr) / sizeof(int);traverse(arr, n);select(arr, n);printf("[ after select sort ] ");traverse(arr, n);return 0;
}/* subfunction */
int findmin(int *array, int m, int n)		// find the minimum data, return index
{int minindex = m, mindata = array[m];int j;for(j = m + 1; j < n; j++){if(mindata > array[j]){minindex = j;mindata = array[j];}}return minindex;
}void select(int *array, int length)	 	// select sort
{for(int i = 0; i < length - 1; i++){int min = findmin(array, i, length);if(i != min){int tmp = array[i];array[i] = array[min];array[min] = tmp;}}
}void traverse(int *array, int length)		// show element one by one
{printf("elements(%d): ", length);for(int k = 0; k < length; k++){printf("%d  ", array[k]);}printf("\n");
}

编译链接: gcc -o selectsort selectsort.c

执行可执行文件: ./selectsort



插入排序

  1. 第二个数据和第一个数据,两两比较,数值小的在前。
  2. 从第三个数据开始到第一个数据,依次和前面一个数据两两比较,数值小的在前。
  3. 从第四个数据开始到第一个数据,依次和前面一个数据两两比较,数值小的在前。
  4. 最多重复操作n-1次。

时间复杂度:最好情况 O(n),最坏情况 O(n^{2}),平均情况 O(n^{2})

  • 若已是排好的,无需交换,从第二个数据到最后,依次只需和前面一个数据两两比对,需要n-1次比对,则时间约n,即 O(n)。
  • 若是乱序,则除了和前面数据两两比对(需n-1次比对),还需重复往前比对,最多比对n-1次,总时间约n^{2},即O(n^{2})。

空间复杂度:O(1)

  • 在原位置排序,只重复使用了用于交换的临时空间,不随数据量的变动而变动,空间使用为常量(1)。


C语言实现:(insertsort.c)

#include <stdio.h>/* function prototype */
void insertsort(int *, int);		// insert sort
void traverse(int *, int);		// show element one by one/* main function */
int main(void)
{int arr[] = {4,2,6,9,5,1,3};int n = sizeof(arr) / sizeof(int);traverse(arr, n);insertsort(arr, n);printf("[ after insert sort ] ");traverse(arr, n);return 0;
}/* subfunction */
void insertsort(int *array, int length)	// insert sort
{int ischange = 0;for(int i = 1; i < length; i++){for(int j = i; j >= 0; j--){if(array[j-1] > array[j]){int tmp = array[j];array[j] = array[j-1];array[j-1] = tmp;ischange = 1;}if(ischange == 0) return ;}}
}void traverse(int *array, int length)		// show element one by one
{printf("element(%d): ", length);for(int k = 0; k < length; k++){printf("%d  ", array[k]);}printf("\n");
}

编译链接: gcc -o insertsort insertsort.c

执行可执行文件: ./insertsort

http://www.ds6.com.cn/news/27330.html

相关文章:

  • 莆田cms建站模板如何自己创建网站
  • 棋牌源码搭建论坛郑州seo排名扣费
  • 不隐藏wordpress南宁网站运营优化平台
  • 乐清建网站哪家好线下推广有哪些渠道
  • 想要做一个网站高质量外链购买
  • 哪个小说网站版权做的好网站备案查询系统
  • 艺商网站外包seo服务收费标准
  • 广州室内设计公司排行榜优化网站视频
  • html5网站代码win10系统优化
  • 重庆做网站优化品牌seo培训
  • 福州网站怎么做seo现在的网络推广怎么做
  • 微信运营环境加载失败怎么办唐山seo推广公司
  • 做简单网站需要学什么郑州seo联系搜点网络效果好
  • iis 制作搜索网站百度seo点击排名优化
  • 网站运营管理办法刷关键词要刷大词吗
  • 开源门户网站源码百度官网电话客服24小时
  • 如何快速做一个网站品牌推广和营销推广
  • 沈阳专门做网站优化营商环境
  • 精品无人区高清不用下载网站seo推广营销
  • 寻找郑州网站优化公司深圳全网信息流推广公司
  • 个人网站做淘宝客容易封吗俄罗斯搜索引擎yandex推广入口
  • 企业宣传画册制作报价深圳网站关键词优化公司
  • 学校网站建设发展概况分析网站建站流程
  • 单页手机网站源码市场营销分析案例
  • 公司网站怎么设计制作潍坊百度快速排名优化
  • 护肤网站的功能设计上海排名优化seobwyseo
  • 信用网站建设是国家统一部署网站制作的基本流程是什么
  • 百度的网站哪来的常州网站制作维护
  • 免费搭建网站教程seo外链推广工具
  • 门户做网站宁波seo搜索优化费用