排序也是写程序中比较常用的算法,一定要掌握的。有很多排序方法,一般的只要掌握几个常用的就行了。冒泡是我接触最早的排序,也比较如以理解。介绍一下关键点:例如有一个整数数组 int a [6] = { 4, 9, 2, 6, 1, 3},按从小到大排列。
1。冒泡排序是把相邻(a[i], a[i+1])的两个数比较,把较大的数放在后面。
2.循环次数:a[6]数组的长度是6,那只需比较5次就可以排好了,第一趟选出最小的一个放在第一个位置,第二趟选出第二小的放在第二个位置。最后一个不用比较一定是最大的。所以只需5次。
#include/*time:2015/6/22@author:liuxinquan*///冒泡排序void bubble_sort(int a[]){ int i, j, k; for(i=1; i<6; i++) //一共比较5次,i为1时,选出最小的一个 { for(j=5; j>=i; j--) //从最后一个数开始查看是否最小 { if(a[j]
另一种冒泡排序,也算是选择排序。对比两个不同处:
#includevoid sample_sort(int a[]){ int i, j, k; for(i=0; i<5; i++) //一共比较5次,i为1时,把第一个位置上的数和后面的依次比较 { for(j=i+1; j<6; j++) //从要比较的数后面的数开始,就是第一个数先和第二个数开始比较, { if(a[i]>a[j]) //和上面的区别,比较数的位置不变,就是一直是a[i]位置和后面的数比较 { int t; t = a[i]; a[i] = a[j]; a[j] = t; } } } //输出数组 for(k=0; k<6; k++) { printf("%d ", a[k]); }}//主函数,测试。int main(void){ int a[6] = {4, 9, 2, 6, 1, 3}; sample_sort(&a);}