各种排序方法比较
来源:互联网 发布:淘宝qq推广软件 编辑:程序博客网 时间:2024/06/05 20:32
冒泡法
void sort(int *ar, int num){int i, j;int t;int flag = 0;print(ar, num);for(i = 1; i < num; i++) //num个数需要排num - 1次{flag = 0;for(j = 0; j < num - i; j++) //每次只需对前num - i个数排序{if(ar[j] > ar[j+1]) //如果第j个数比它后面一个数大,就要交换{t = ar[j];ar[j] = ar[j+1];ar[j+1] = t;flag = 1;}}if(flag == 0) //如果flag == 0表明本次排序没有经过一个交换,所以说明它己经有序了,就不用再循环{break;}print(ar, num);}print(ar, num);}-----------------------------------------------------------
简单排序法
void sort(int *ar, int num){int i, j, t, min;print(ar, num);for(i = 0; i < num - 1; i++){min = i; //假设最小的一个数的下标就是ifor(j = i + 1; j < num; j++){if(ar[min] > ar[j]){min = j; //用min保存最小的数的下标}}if(min != i) //把最小的那个数放到i这个位置{t = ar[min];ar[min] = ar[i];ar[i] = t;}}print(ar, num);}---------------------------------------------
插入排序算法
void sort(int *ar, int num){int i, j, t;print(ar, num);for(i = 1; i < num; i++) //取出第i个数,用来和它前面的i - 1个数进行比较{for(j = i - 1; j >= 0; j--){if(ar[i] >= ar[j])break;}if(j != i - 1){t = ar[i];memmove(&ar[j+2], &ar[j+1], (i - j - 1) * sizeof(int)); //把j之后的(i - j - 1)个数据通通向后移动一个位置ar[j+1] = t;}print(ar, num);}print(ar, num);}--------------------------------------------
快速排序算法
void sort(int *ar, int left, int right){int l = left, r = right;int t;if(r > l){t = ar[l]; //从数组左边取一个数while(r > l){while(r > l){if(ar[r] <= t) //从右边找一个比t小的数{ar[l] = ar[r]; //把找到的数放到ar[l]中l++;break;}r--;}while(r > l){if(ar[l] > t) //从右边找一个比t大的数{ar[r] = ar[l]; //把找到的数放到ar[r]中r--;break;}l++;}}ar[l] = t; //把之前的t主回到最后空出来的那个位置sort(ar, left, l - 1); //把序列的左半部份重复之前的排序sort(ar, l + 1, right); //把序列的右半部份重复之前的排序}}
-----------------------------------------
二分法查找
int bfind(int* a,int len,int val){ int m = len/2; int l = 0; int r = len; while(l!=m && r!= m) { if(a[m] > val) { r = m; m = (m+l)/2; } else if(a[m] < val) { l = m; m = (m+r)/2; } else return m; } return -1; //没有找到}
0 0
- 各种排序方法比较
- 各种排序方法比较
- 各种排序方法比较
- 各种排序方法比较
- 各种排序方法比较
- 各种排序方法的比较
- 各种排序方法的比较
- 各种排序方法的比较
- 各种内部排序方法的比较
- 各种排序方法的综合比较
- 各种排序方法的综合比较
- 各种排序方法的性能比较
- 各种排序方法的综合比较
- 各种内部排序方法的分析比较
- 各种内部排序方法的比较
- 常见排序算法:各种内部排序方法比较
- 排序(各种排序方法的实现与比较)
- 各种排序算法比较
- s5pv210 uboot 启动过程
- Matlab 函数
- Chapter 2 unit 1 of Bootstrap-Bootstrap CSS
- 对称加密和非对称加密!
- 码农提高工作效率
- 各种排序方法比较
- 关于“const ”关键字和“static”关键字用法的一些理解
- C语言进阶(牟海军)C 语言指针理解 续(2)
- 细说Redirect重定向请求(情节分享)
- MTD设备模型建立流程
- VS2012中文旗舰版
- 从文件导数据到数据库的性能优化思路(笔记)
- jsp+javabean 连接 mysql 数据库
- 【编程之美资格赛】题目2 : 大神与三位小伙伴