(1)冒泡排序
#include#include #include #define LEN 10 int main() { int a[LEN] = {4,3,8,7,2,6,9,1,5,0}; int i,j; int tmp; for(i=0;i a[j]) { tmp = a[i]; a[i] = a[j]; a[j] = tmp; } } a[j] = tmp; } for(i=0;i (2)选择排序
#include#define LEN 10 int main() { int a[LEN] = {4,3,8,7,2,6,9,1,5,0}; int i,j; int min_value; int min_pos; for(i=0;i (3)插入排序
#include#include #include #define LEN 10 int main() { int a[LEN] = {4,3,8,7,2,6,9,1,5,0}; int i,j; int tmp; for(i=0;i =0&&tmp (4)快速排序
#includevoid fast_sort(int *array,int l ,int r) { //已经递归到一个数了,不需要再排序 if( l >= r ) return ; int left = l; int right= r; //假定num的数值是最左边的数值 int num = array[left]; while( left < right ) { //从数组右边开始往左边遍历,把比num要小的数值放在左边来 while( num < array[right] && left array[left] && left (5)希尔排序
#includevoid xier_sort(int *s,int n) { int i,j,temp; int d;//增量 //增量一开始为总长度的一半,每次结束后除以2作为下一次的增量。 //只要增量大于0,就继续排序 for(d=n/2 ; d>0 ; d=d/2) { //从未排序区域的第一个数值往后遍历 for(i=d; i =0 && temp< s[j-d]) { s[j] = s[j-d]; j = j-d; } s[j]=temp; } // for(j=i; j-d>=0 && temp



