冒泡排序
2015-10-19 13:42
197 查看
1.算法原理
冒泡排序算法的运作如下:(从后往前)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
2.代码
冒泡排序算法的运作如下:(从后往前)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
2.代码
#include <stdio.h> int bubble_sort(int* arr,int size) { int ret = 0; if(arr == NULL) return -1; int i = 0; int j = 0; int tmp = 0; for(i=0;i<size-1;i++) { for(j=0;j<size-1-i;j++) { if(arr[j] > arr[j+1]) { tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; } } } return ret; } int main(int argc, char const *argv[]) { /* code */ int i = 0; int arr[] = {3,10,2,15,8,20,1,-1,30,100,20,-23}; bubble_sort(arr,sizeof(arr)/sizeof(arr[0])); for (i = 0; i < sizeof(arr)/sizeof(arr[0]); ++i) { /* code */ fprintf(stderr, "%d ", arr[i]); } fprintf(stderr, "\n"); return 0; }
相关文章推荐
- 全局变量、局部变量、静态局部变量及静态全局变量的区别
- ActionBar
- javaweb之Cookie篇
- centos系统下安装使用composer教程
- 疯狂的O2O快活不下去 抱大腿跪求免死
- React-Native进行时(四)--ListView navigator.push
- 详解JavaScript数组的操作大全
- 关于C++中类类型转换操作符总结
- Menu
- 一个典型的视觉系统——镜头
- OC的基础语法(五)
- nyoj 2 括号配对(一)
- 循环单链表实现约瑟夫环问题
- C#文件写入
- JAVA Hibernate工作原理及为什么要用
- NSDateComponents Class Reference
- encodeURI为什么要用两次
- 减少java垃圾回收的开销方法
- eclipse运行WordCount
- NSZone