面試 演算法排序(3)(希爾排序)

2021-08-04 14:24:07 字數 766 閱讀 9878

shell排序:

嚴格來說基於插入排序的思想,又稱希爾排序或者縮小增量排序

流程:①將有n 個元素的陣列分成n/2個數字序列,第1個資料和第n/2+1個資料為1對,第2個資料和第n/2+2個資料為一對….

②一次迴圈使每乙個序列隊排好順序

③然後,再變為n/4個序列,再次排序

④不斷重複上述過程,隨著序列減少最後變成乙個,也就完成了整個排序

**展示:

package third;

public

class shell

a[j+r]=index;}}

}public

static

void

main(string args)

system.out.print("排序前的陣列為:\n");

for (int i=0;iout.print(" "+shuzu[i]);

}system.out.print("\n");

shell(shuzu);

system.out.println("排序後的陣列為:");

for(int i=0;iout.print(" "+shuzu[i]);

}system.out.print("\n");

}}

演算法分析:

1 時間複雜度為:o(nlogn)。

2 空間複雜度: o(1)

3 穩定性:不穩定

4 最差情形:o(n^s) 其中s指所選分組

面試演算法 排序

0.演算法時間複雜度 演算法的時間複雜度和空間複雜度 總結 1.快速排序 白話經典演算法系列之六 快速排序 快速搞定 快速排序最好,最壞,平均複雜度分析 2.歸併排序 白話經典演算法系列之五 歸併排序的實現 blog.csdn.net morewindows article details 6678...

排序演算法3 希爾排序

此篇我是17年7月份有幸閱讀到morewindows的此篇部落格 希爾排序 可惜的是當時不是很懂。又因工作繁忙以至於忘了此事。直到最近換完工作才有想起有此坑還未填上,便又翻出看了一遍。這次有了全新的認識。特此記錄 現在才想起當時為何看的不是很懂,是因為此篇部落格中的實驗中間省略了一小部分。看似省略的...

面試 演算法排序(6)(氣泡排序)

氣泡排序 思路就是交換排序,通過相鄰資料的交換來達到排序的目的 流程 對陣列中的各資料,依次比較相鄰的兩個元素的大小 如果前面的資料大於後面的資料就交換兩個資料,經過第一輪的多次比較排序後,便可將最小的資料排好 再用同樣的方法把剩下的資料逐個比較 展示 package third public cl...