JAVA算法起步之拔出排序實例。本站提示廣大學習愛好者:(JAVA算法起步之拔出排序實例)文章只能為提供參考,不一定能成為您想要的結果。以下是JAVA算法起步之拔出排序實例正文
趁著過年這段時光,我將算法導論這本書看了一遍,感到收獲頗豐。著這裡也依據算法導論中所觸及到的算法用java完成了一遍。
第一篇我們就從排序開端,拔出排序的道理很簡略,就像我們玩撲克牌時一樣。假如手裡拿的牌比他前一張小,就持續向前比擬,曉得這張牌比他後面的牌打時刻便可以插在他的前面。固然在盤算機中我們響應的也須要將比較過的牌向後移一名才可以。
這裡直接給出算法,信任許多法式員都感到有些法式比我們的天然說話都要好懂得。
public class Sort {
public void sort(int[] s){
if(s.length<1){
return ;
}
for (int i = 1; i < s.length; i++) {
int key =s[i];
int j=i-1;
while(j>=0&&s[j]>key){
s[j+1]=s[j];
j--;
}
s[j+1]=key;
}
}
public static void main(String[] args) {
Sort s=new Sort();
int[] st =new int[]{7,5,3,4,2,1};
s.sort(st);
for (int i = 0; i < st.length; i++) {
System.out.println(st[i]);
}
}
}
他的時光龐雜度是o(n*n),是舊址的(任什麼時候候都須要常數個二外的元素空間存儲數據而合並排序就長短舊址的)