首页 > 代码库 > 排序算法

排序算法

1.冒泡排序

void bubble_sort(int arr[], int num){    for(int i=0;i<num-1;i++){         //一共进行num-1趟比较        for(int j=0;j<i+1;j++){       //这里用i+1可以加快效率             if (arr[j]>arr[j+1]){     //如果前面的数大于后面的数                int t=arr[j];         //交换两个数的位置,使小数下沉                arr[j]=arr[j+1];                arr[j+1]=t;            }        }    } }

2.选择排序

void select_sort(int array[],int n) //形参array是数组名,n为数组的大小 {    int i,j,k,t;    for(i=0; i<n-1; i++)    {        k=i;       //先令第i个为最小,k用来记录最小元素的下标         for(j=i+1; j<n; j++){ //从第i+1个元素到最后一个元素遍历一遍             if(array[j]<array[k]){ //如果发现了有比array[k]更小的元素                 k=j;               //得到k为最小            }        }                         t=array[k];        //交换a[i]和a[k]        array[k]=array[i];        array[i]=t;            }    return;}

3.归并排序