合并排序算法实例程序(C语言)

广告位

合并排序算法C语言实例程序,如下图所示: #include <stdio.h> int a[20]…

合并排序算法C语言实例程序,如下图所示:

#include <stdio.h>    int a[20], b[20], n;    void merging(int low, int mid, int high) {     int l1,l2,i;       for(l1 = low, l2 = mid + 1, i = low; l1 <= mid && l2 <= high; i++){        if(a[l1] <= a[l2])           b[i] = a[l1++];        else           b[i] = a[l2++];     }       while(l1 <= mid)            b[i++] = a[l1++];  		     while(l2 <= high)           b[i++] = a[l2++];       for(i = low; i <= high; i++)        a[i] = b[i];  }    void sort(int low,int high) {     int mid;          if(low < high) {        mid = (low+high) / 2;        sort(low, mid);        sort(mid+1, high);        merging(low, mid, high);     }     else {        return;     }       }    int main() {      int i;          printf("Enter N ");      scanf("%d",&n);       printf("Enter elementsn");          for(i = 1; i <= n; i++)        scanf("%d",& a[i]);       sort(1,n);       printf("After sortingn");          for(i = 1; i <= n; i++)        printf("%dn", a[i]);  }

贺, 贺朝

关于作者: 贺朝

为您推荐