數(shù)據(jù)結構 希爾排序 c Swift 版本

個人對希爾排序的理解
  • 是將待排序 分成若干的子系列排序(是由相隔的個參數(shù)缴淋,分割而成)。
  • 每次 排序子序列(相隔的參數(shù)減少一半)
  • 最終 會對全體元素進行一次直接插入排序响巢, 因為在 (元素大部分有序的情況下描滔,直接插入排序效率很高),所以希爾排序時間效率就快
算法 時間復雜度 與 自己想法
  • 由于 希爾排序 基于 插入排序的一種算法踪古,當相隔的參數(shù)為1含长,過程就為插入排序。
  • 所以 希爾排序 優(yōu)化點可以根據(jù) 實際的情況 和 待排序的元素有序程度伏穆。 來單獨設計 相隔的參數(shù)
  • 在 待排序列 有序的情況下 速度很快拘泞, 當然在最差的情況下 也比 直接插入排序快。
  • 希爾排序的時間復雜度是:O(n^1.2)
  • 算法 不穩(wěn)定
        #include <stdio.h>

        void shellsort(int a[], int n)
        {
            int j, gap;
            
            for (gap = n / 2; gap > 0; gap /= 2) //空開幾個
                for(j = gap; j < n; j++) //掃一遍
                    if (a[j] < a[j-gap])  //比較 倆
                    {
                        int temp = a[j];
                        int k = j - gap;
                        
                        while (k >= 0 && a[k] > temp) ///讓最小的 移動到最前面
                        {
                            a[k + gap] = a[k];
                            k -= gap;
                        }
                        ///最小的復制過來
                        a[k + gap] = temp;
                    }
        }

        int main(){
           
            int a[10] = {2,5,6,7,8,9,0,1,3,4};
            
            shellsort(a, 10);
            
            int i ;
            
            for (i = 0; i < 10; i++) {
                
                printf("%d",a[i]);
                
            }
            printf("\n");

            return 0;
        }
  • swift

          import UIKit
    
          func shellsort(inout a : [Int]){
              
              let n = a.count-1
              
              for(var gap = n / 2; gap > 0; gap /= 2){
                  for j in gap...n {
                      if a[j] < a[j-gap]{
                          let tmep = a[j]
                          var k = j - gap
                          while k >= 0 && a[k] > tmep {//掃一遍 好填最小值
                              a[k + gap] = a[k]
                              k -= gap
                          }
                          a[k + gap] = tmep
                      }
                  }
              }
              
          }
    
          var a = [2,5,6,7,8,9,0,1,3,4]
    
          shellsort(&a)
    
  • 看我那么可愛n(≧▽≦)n
  • 關注我的微薄 (梁同桌):http://weibo.com/tongrenyinsheng

  • 個人博客: http://www.liangtongzhuo.com

  • ios 個人寫的app (同人音聲)ASMR音樂

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末枕扫,一起剝皮案震驚了整個濱河市陪腌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烟瞧,老刑警劉巖诗鸭,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異燕刻,居然都是意外死亡只泼,警方通過查閱死者的電腦和手機剖笙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門卵洗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弥咪,你說我怎么就攤上這事过蹂。” “怎么了聚至?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵酷勺,是天一觀的道長。 經常有香客問我扳躬,道長脆诉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任贷币,我火速辦了婚禮击胜,結果婚禮上,老公的妹妹穿的比我還像新娘役纹。我一直安慰自己偶摔,他們只是感情好,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布促脉。 她就那樣靜靜地躺著辰斋,像睡著了一般策州。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宫仗,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天够挂,我揣著相機與錄音,去河邊找鬼藕夫。 笑死下硕,一個胖子當著我的面吹牛,可吹牛的內容都是我干的汁胆。 我是一名探鬼主播梭姓,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嫩码!你這毒婦竟也來了誉尖?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤铸题,失蹤者是張志新(化名)和其女友劉穎铡恕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丢间,經...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡探熔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了烘挫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诀艰。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖饮六,靈堂內的尸體忽然破棺而出其垄,到底是詐尸還是另有隱情,我是刑警寧澤卤橄,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布绿满,位于F島的核電站,受9級特大地震影響窟扑,放射性物質發(fā)生泄漏喇颁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一嚎货、第九天 我趴在偏房一處隱蔽的房頂上張望橘霎。 院中可真熱鬧,春花似錦厂抖、人聲如沸茎毁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽七蜘。三九已至谭溉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間橡卤,已是汗流浹背扮念。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留碧库,地道東北人柜与。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像嵌灰,于是被迫代替她去往敵國和親弄匕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內容

  • 某次二面時沽瞭,面試官問起Js排序問題迁匠,吾絞盡腦汁回答了幾種,深感算法有很大的問題驹溃,所以總計一下城丧! 排序算法說明 (1...
    流浪的先知閱讀 1,189評論 0 4
  • 總結一下常見的排序算法。 排序分內排序和外排序豌鹤。內排序:指在排序期間數(shù)據(jù)對象全部存放在內存的排序亡哄。外排序:指在排序...
    jiangliang閱讀 1,336評論 0 1
  • 前言 八大排序,三大查找是《數(shù)據(jù)結構》當中非巢几恚基礎的知識點蚊惯,在這里為了復習順帶總結了一下常見的八種排序算法。常見的...
    LeeLom閱讀 97,216評論 41 662
  • 通常一個月亮運行周期需要29.5天拐辽,也就是說如果我們想看月亮從新月變化到滿月再回到新月需要一整個月天天晚上盯著月亮...
    去皮兒閱讀 596評論 0 0
  • 今日拣挪,踏上新的旅途擦酌,這一刻俱诸,我選擇為一個人,愛一座城赊舶! 因為你睁搭,我堅定自己的步伐, 因為你笼平,我決定付出一切园骆!
    與你仗劍天涯閱讀 130評論 0 0