归并排序

来源:互联网 发布:VueJS循环数组取值 编辑:程序博客网 时间:2024/06/06 07:00
#include<stdio.h>void mergeSort(int a[],int low,int mid,int high){    int b[10],i,j,k;    for(i=low;i<=high;i++)    {        b[i]=a[i];    }    for(i=low,j=mid+1,k=i;i<=mid&&j<=high;k++)    {        if(b[i]<=b[j])a[k]=b[i++];        else a[k]=b[j++];    }    while(i<=mid)a[k++]=b[i++];    while(j<=high)a[k++]=b[j++];   //开始无序了}void merge(int a[],int low,int high){       if(low<high)    {        int mid =(low+high)/2;        merge(a,low,mid);        merge(a,mid+1,high);        mergeSort(a,low,mid,high);    }}void main(){    int i;    int a[8]={22,55,38,44,2,555,3,4};    merge(a,0,7);    for(i=0;i<=7;i++)        printf("%5d",a[i]);}
0 0