亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

希爾排序算法的C語言實現示例

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

希爾排序,也稱遞減增量排序算法,是插入排序的一種更高效的改進版本。希爾排序是非穩定排序算法。

希爾排序是基于插入排序的以下兩點性質而提出改進方法的:

插入排序在對幾乎已經排好序的數據操作時,效率高,即可以達到線性排序的效率
但插入排序一般來說是低效的,因為插入排序每次只能將數據移動一位

希爾排序通過將比較的全部元素分為幾個區域來提升插入排序的性能。這樣可以讓一個元素可以一次性地朝最終位置前進一大步。然后算法再取越來越小的步長進行排序,算法的最后一步就是普通的插入排序,但是到了這步,需排序的數據幾乎是已排好的了(此時插入排序較快)。

假設有一個很小的數據在一個已按升序排好序的數組的末端。如果用復雜度為O(n2)的排序(冒泡排序或插入排序),可能會進行n次的比較和交換才能將該數據移至正確位置。而希爾排序會用較大的步長移動數據,所以小數據只需進行少數比較和交換即可到正確位置。

一個更好理解的希爾排序實現:將數組列在一個表中并對列排序(用插入排序)。重復這過程,不過每次用更長的列來進行。最后整個表就只有一列了。將數組轉換至表是為了更好地理解這算法,算法本身僅僅對原數組進行排序(通過增加索引的步長,例如是用i += step_size而不是i++)。

C語言實現示例

#include<stdio.h>#include<stdlib.h>#include<time.h>#define LEN 10typedef int dataType;//初始化數組,賦值整數隨機數void initArr(dataType arr[], int len);//希爾排序void shellSort(dataType arr[], int len);//交換兩個數void swap(dataType &x,dataType &y);//打印數組元素void print(dataType arr[], int len);int main(){ dataType arr[LEN]; initArr(arr,LEN); printf("================希爾排序================"); //輸出排序前的數組元素 printf("/n排序前數組元素:"); print(arr,LEN); shellSort(arr,LEN); printf("/n排序后數組元素:"); print(arr,LEN); printf("/n"); return 0;}//初始化數組,賦值整數隨機數void initArr(dataType arr[], int len){ int i = 0; srand((unsigned)time(NULL)); for(i = 0; i < len; i++) arr[i] = rand();}//希爾排序void shellSort(dataType arr[], int len){ int h = 0; int i = 0; int j = 0; //設置步長 for(h = 1; h < len; h = 3 * h + 1) ; while(h) { h /= 3; if(h < 1)  break; for(i = h; i < len; i++)  for(j = i; j >= h; j-=h)  {  if(arr[j-h] < arr[j])   break;  swap(arr[j-h],arr[j]);  } }}//交換兩個數void swap(dataType &x,dataType &y){ dataType temp; temp = x; x = y; y = temp;}//打印數組元素void print(dataType arr[], int len){ int i = 0; for(i = 0; i< LEN; i++) { if(i % 5 == 0) {  printf("/n"); } printf("%d/t",arr[i]); }}

201649171620878.jpg (385×158)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久69| 亚洲一区二区国产| 欧美一区在线直播| 久久久久久久久久久久久久久久久久av| 国产精品99久久99久久久二8| 久久久久久中文| 日本精品va在线观看| 97人人模人人爽人人喊中文字| 亚洲天堂av综合网| 国产在线不卡精品| 亚洲免费人成在线视频观看| 日韩精品极品毛片系列视频| 一本大道香蕉久在线播放29| 国产亚洲精品久久久久动| 国产成人一区二区三区电影| 久久精品小视频| 91中文字幕一区| 国产精品白丝av嫩草影院| 亚洲男人天堂2023| 国产精品久久久久久久天堂| 国产91精品网站| 欧美在线视频观看免费网站| 大胆人体色综合| 久久久久一本一区二区青青蜜月| 亚洲精选在线观看| 国产午夜精品全部视频播放| 亚洲深夜福利视频| 欧美高跟鞋交xxxxhd| 国产精品成人免费视频| 亚洲欧美制服另类日韩| 国产精品电影网| 精品香蕉在线观看视频一| 亚洲香蕉av在线一区二区三区| 亚洲美女福利视频网站| 69影院欧美专区视频| 国内精品久久久久久久久| 尤物九九久久国产精品的分类| 国产午夜精品理论片a级探花| 国产91在线视频| 久久国产精品久久久久久久久久| 亚洲va欧美va国产综合剧情| 国产日韩在线视频| 日韩精品视频免费专区在线播放| 欧美天天综合色影久久精品| 国产精品免费视频久久久| 91久久精品美女高潮| 精品五月天久久| 97婷婷大伊香蕉精品视频| 亚洲免费视频一区二区| 性色av一区二区三区红粉影视| 亚洲成人久久久| 国产一区二区久久精品| 日韩精品极品视频免费观看| 日日噜噜噜夜夜爽亚洲精品| 日韩不卡在线观看| 亚洲国产天堂网精品网站| 日韩二区三区在线| 日韩激情视频在线| 欧美日韩国产中文精品字幕自在自线| 中文字幕亚洲激情| 国产精品视频精品视频| 国产欧美婷婷中文| 欧美日韩精品在线观看| 国产97在线视频| 中文字幕在线观看亚洲| 成人免费视频97| 欧美精品在线免费观看| 2018日韩中文字幕| 欧美激情成人在线视频| 欧美高清在线视频观看不卡| 久久久精品2019中文字幕神马| 欧美激情综合色综合啪啪五月| 国产精品一区二区久久久久| 一区二区三区四区视频| 欧美与黑人午夜性猛交久久久| 国产精品久久久久久久久久东京| 亚洲黄色www网站| 精品毛片三在线观看| 欧亚精品在线观看| 91九色单男在线观看| 久久久久久中文字幕| 欧美视频一区二区三区…| 国产精品久久久久91| 欧美性xxxxx| 欧美性猛交xxxx免费看| 欧美成人高清视频| 美女啪啪无遮挡免费久久网站| 国产免费久久av| 久久久久999| 亚洲91精品在线观看| 精品国产999| 中文字幕不卡av| 日韩中文理论片| 日韩欧美成人免费视频| 国产一区二区丝袜高跟鞋图片| 欧洲精品毛片网站| 国产精品精品视频| 91精品国产高清久久久久久| 亚洲第一中文字幕在线观看| 欧美精品一区二区免费| 亚洲第一综合天堂另类专| 高清亚洲成在人网站天堂| 久久99国产精品久久久久久久久| 夜夜嗨av一区二区三区四区| 久久成人免费视频| 亚洲福利小视频| 自拍偷拍亚洲在线| 亚洲加勒比久久88色综合| 在线观看精品国产视频| 91久久精品一区| 国产在线精品自拍| 国产成人短视频| 亚洲国产精品va在线| 69久久夜色精品国产7777| 欧美激情在线观看视频| 亚洲美女视频网| 国内精品久久久久久久| 国产日韩在线亚洲字幕中文| 久久人人看视频| 久久精品99无色码中文字幕| 亚洲免费av电影| 亚洲电影av在线| 欧美日韩精品中文字幕| 欧美成人黑人xx视频免费观看| 亚洲人成啪啪网站| 国产日韩在线亚洲字幕中文| 国产成人精品综合久久久| 国产亚洲精品成人av久久ww| 国产精品视频xxxx| 亚洲色图狂野欧美| 成人av电影天堂| 成人在线播放av| 亚洲毛片一区二区| 国产欧美一区二区三区久久人妖| 亚洲第一区中文字幕| 亚洲综合中文字幕在线| 亚洲激情小视频| 欧洲成人免费aa| 欧美激情视频在线观看| 91精品国产高清久久久久久久久| 久久av.com| 国产丝袜一区二区| 国产91成人在在线播放| 亚洲成人免费在线视频| 亚洲欧美日韩爽爽影院| 亚洲欧美日韩中文在线制服| 精品国内自产拍在线观看| 亚洲精品第一国产综合精品| 欧洲永久精品大片ww免费漫画| 成人97在线观看视频| 亚洲天堂av在线免费观看| 国产精品黄视频| 国产一区二区欧美日韩| 97超碰蝌蚪网人人做人人爽| 九九热这里只有在线精品视| 国产免费亚洲高清| 国产盗摄xxxx视频xxx69| 欧美福利在线观看| 久久琪琪电影院| 国产91精品青草社区| 国产精品久久一区主播| 成人黄色在线观看| 国产精品电影久久久久电影网| 亚洲精品美女视频|