c语言之排序
2016-01-06 19:44
351 查看
1.冒泡排序(一)
拿第I个数分别和后面的数比较,小的放在前面,第一次循环后,第一个数是最小的,第二次循环从第二个数开始比较,依次执行。
2.冒泡排序(二)
拿前一个数和后一个数进行比较,把大数放在后面,第一次循环结束后,最大的数在最后一位,下一次循环还是从第一个数开始比较,依次执行。
3.选择排序
定义一个标记,首先放在第一个数上,然后依次和后面的数进行比较,如果比后面的数小的话,就把标记移动到该位置上,一次循环结束后判断该标记和初始标记值是否相同,不同就将该位置的数值进行交换,下一次循环从第二个数开始,依次执行。
4.插入排序
拿第I个数分别和后面的数比较,小的放在前面,第一次循环后,第一个数是最小的,第二次循环从第二个数开始比较,依次执行。
for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++){ if(a[i]>a[j]){ t=a[i]; a[i]=a[j]; a[j]=t; } } }
2.冒泡排序(二)
拿前一个数和后一个数进行比较,把大数放在后面,第一次循环结束后,最大的数在最后一位,下一次循环还是从第一个数开始比较,依次执行。
for(i=0;i<n-1;i++){ for(j=0;j<n-i-1;j++){ if(a[j]>a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } }
3.选择排序
定义一个标记,首先放在第一个数上,然后依次和后面的数进行比较,如果比后面的数小的话,就把标记移动到该位置上,一次循环结束后判断该标记和初始标记值是否相同,不同就将该位置的数值进行交换,下一次循环从第二个数开始,依次执行。
for(i=0;i<n-1;i++){ k=i; for(j=i+1;j<n;j++){ if(a[j]<a[k]){ k=j; } } if(i!=k){ temp=a[k]; a[k]=a[i]; a[i]=temp; } }
4.插入排序
for(i=2;i<n+1;i++){ r[0]=r[i]; j=i-1; for(;r[j]>r[0];j--){ r[j+1]=r[j]; } r[j+1]=r[0]; }
相关文章推荐
- C++ Primer 5th Chapter 5 学习笔记
- C++ Primer 5th Chapter 4 学习笔记
- VC++读取注册表失败之64位惹得祸
- C++小题(十一)
- C++ Primer Plus (第六版) 编程练习4.13
- libc++abi.dylib: terminate_handler unexpectedly threw an exception错误
- 快速傅里叶变换和逆变换的C++实现
- C++ primer plus读书笔记——第17章 输入、输出和文件
- C++ primer plus读书笔记——第16章 string类和标准模板库
- C++ primer plus读书笔记——第15章 友元、异常和其他
- C++ primer plus读书笔记——第14章 C++中的代码重用
- C++ primer plus读书笔记——第13章 类继承
- c++例子分析-内存内容覆盖
- C++ primer plus读书笔记——第12章 类和动态内存分配
- C++ primer plus读书笔记——第11章 使用类
- C++ primer plus读书笔记——第10章 对象和类
- C++ primer plus读书笔记——第9章 内存模型和名称空间
- C++ primer plus读书笔记——第8章 函数探幽
- C++ primer plus读书笔记——第7章 函数——C++的编程模块
- C++ primer plus读书笔记——第6章 分支语句和逻辑运算符