a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

舉例講解C語言對歸并排序算法的基礎使用

2020-01-26 14:37:21
字體:
來源:轉載
供稿:網友

基礎概念
百度百科是這么描述歸并排序的:
歸并操作(merge),也叫歸并算法,指的是將兩個已經排序的序列合并成一個序列的操作。
設有數列

{6,202,100,301,38,8,1}

初始狀態:

[6] [202] [100] [301] [38] [8] [1] 

比較次數 

  i=1 [6 202 ] [ 100 301] [ 8 38] [ 1 ] 3   i=2 [ 6 100 202 301 ] [ 1 8 38 ] 4   i=3 [ 1 6 8 38 100 202 301 ] 4

總計: 11次

實例

#include <stdio.h> void printArr(int arr[],int length){     int i;     for(i=0;i<length;i++){         printf("%d,",arr[i]);     }     printf("/n"); } void merge(int a[],int alength,int b[],int blength,int c[]){//將2個已排好序的數組合并到數組c     int i=0,j=0,k=0;     while(1){         if(a[i]<=b[j]){             c[k] = a[i];             i++;             k++;             if(i==alength){                 for(;j<blength;j++,k++){                     c[k] = b[j];                 }                 break;             }         }else{             c[k] = b[j];             j++;             k++;             if(j==blength){                 for(;i<alength;i++,k++){                     c[k] = a[i];                 }                 break;             }         }     }     printArr(c,k);  } void mergeSort(int arr[],int length){//將一個數組分成2個數組,前length-1為第一個,最后一個為第二個,然后合并2個數組     if(length > 1){         int arr1[length-1],arr2[1] = {arr[length-1]};         int i;         for(i=0;i<length-1;i++){             arr1[i] = arr[i];         }         mergeSort(arr1,length-1);//遞歸的調用自己         merge(arr1,length-1,arr2,1,arr);     } }  int main(void){     int a[10] = {3,54,16,8,123,8,89,23,87,2};     printArr(a,10);     mergeSort(a,10);     return 0;  } 

算法性能/復雜度
歸并排序的效率是很高的,由于遞歸劃分為子序列只需要logN復雜度,而合并每兩個子序列需要大約2n次賦值,為O(n)復雜度,因此,只需要簡單相乘即可得到歸并排序的時間復雜度 O(

主站蜘蛛池模板: 天天成人综合网 | 欧美精品一区二区三区在线播放 | 成人久久久精品国产乱码一区二区 | 在线免费看黄色 | 欧美videosex性欧美黑吊 | 蜜桃日韩 | 国产精品久久嫩一区二区 免费 | 91精品久久久久 | 国产成人精品一区二区仙踪林 | 国产精品一区在线 | 99热精品在线 | 国产一区二区在线视频观看 | 日韩高清一区二区 | 色噜噜视频 | 国产剧情一区二区 | 国产成人片| 青草精品 | 免费a级作爱片免费观看欧洲 | 欧美久久大片 | 蜜桃久久 | 亚洲一区视频 | 国产成人久久精品一区二区三区 | 九九热最新视频 | 日韩亚洲视频在线观看 | 欧美福利影院 | 99在线精品视频 | 成人在线精品视频 | av网址在线播放 | 亚洲精品自拍视频 | 国外成人在线视频网站 | 黄色在线观看网站 | 青青草免费在线视频 | 国产精品久久久一区二区 | 亚洲欧美日韩另类精品一区二区三区 | 成人在线免费观看 | 日韩欧美视频 | 国产精品久久二区 | 龙珠z普通话国语版在线观看 | 亚洲免费一级片 | 黄色片毛片 | 色婷婷一区二区三区四区 |