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...