在接触过得排序算法中中,较为常见的有冒泡排序、选择排序、归并排序、快速排序法,他们的区别在于稳定性、时间复杂度、空间复杂度等;
现简单复习一下冒泡排序:
思路非常简单,逐个比较相邻的两个元素,前一个元素大于后一元素就交换位置,第一次便找到了最大数,再次重复遍历,遍历次数减一
void bubble_sort(int a[], int n) //下面是函数bubble_sort的程序 { int i,j,temp; //定义三个整型变量 for (j=0;j<n-1;j++) //用一个嵌套循环来遍历一遍每一对相邻元素 (所以冒泡函数慢嘛,时间复杂度高) { for (i=0;i<n-1-j;i++) { if(a[i]>a[i+1]) //从大到小排就把左边的">"改为"<" !!! { temp=a[i]; //a[i]与a[i+1](即a[i]后面那个) 交换 a[i]=a[i+1]; //基本的交换原理"c=a;a=b;b=c" a[i+1]=temp; } } } }
很简单,其他的原理很不是那么难,要用时见CSDN:https://blog.csdn.net/sty20030818/article/details/81123961