@chawuciren
        
        2018-10-17T23:53:48.000000Z
        字数 1533
        阅读 761
    CSI
#include <stdio.h>#include <stdlib.h>void BubbleSort(int a[], int len);//冒泡void InsertionSort(int a[], int len);//插入void SeletSort(int a[], int len);//选择void fast(int a[],int len);//快排void mertsort(int a[],int len;int left[],int Left,int right[],int Right);//归并int main(void){int a[8]={2,69,83,66,77,88,56,98};//一个数组InsertionSort(a,8);//调用函数for(int i = 0; i < 8; i++)//循环输出{printf("%d\n", a[i]);}return 0;}//冒泡排序void BubbleSort(int a[], int len){int i=0;int j=0;int key=1;//用于替换for(i = 0 ; i < len - 1 ; i++){for(j = 0 ; j < len - i - 1 ; j++)if(a[j] > a[j+1])//比较a[j]和a[j+1],大的向上交换,直到这一次全部比完。然后i+1,比较下一次{key = a[j];a[j] = a[j+1];a[j+1] = key;}}return;}//选择排序void SelectionSort(int a[],int len){int i,j;for(i = 0 ; i < len-1 ; i++){int min_index = i; //存储最小值for(j = i + 1 ; j < len; j++)if(a[ min_index ] > a[j])//选出最小值min_index = j;if(min_index != i){int temp = a[i]; //若当前比较的a[i]>最小值,进行交换a[i] = a[min_index];a[min_index] = temp;}}}//插入排序int InsertionSort(int a[],int len){int key=0;//用于交换for(int i=0;i<len-1;i++){int j=i;do{if(a[j]>a[j+1]){ //假设a[j]已排好,a[j]与a[j+1],若a[j+1]大于前一位,交换,否则不交换。若还有更前一位,再比较。key=a[j];a[j]=a[j+1];a[j+1]=key;}j-=1; //j=j-1,若前一位存在,比较前一位} while(j>=0);}return ;}
void fast(int a[],int len){int k=a[0];//将a[0]作为中间值int i=0;int j=len;int key=0;do{for(j=len;j>0;j--){//从后往前找比他xiaodeif(a[j]<k){key=a[i];a[i]=a[j];a[j]=a[i];}return ;}for(i=0;i<len;i++){//从前往后找比他大的if(a[i]>k){key=a[j];a[j]=a[i];a[i]=key;}}}while(i!=j);//直到i==jreturn 0;}
void mertsort(int a[],int len;int left[],int Left,int right[],int Right){for(int k=0;k<len;k++){if(left[j]<right[i]){//假如左数组的元素小,把他放入原数组a[k]=left[j];j+=1;}else{a[k]=right[i]//假如右数组的元素小,把他放入原数组i+=1;}}return ;}