1、氣泡排序:穩定
演算法描述:相鄰兩個元素比較,每輪排序都會產生剩餘需要排序的資料中的乙個最大或最小的資料。
演算法實現:
public class testsort ;
//氣泡排序
for(int i=0;ia[j+1])
} } }}
2、直接插入排序:穩定
演算法描述:對於乙個陣列,從第i(i>=1)個元素開始,依次和第i-1,i-2,.......0元素比較,因為第i個元素之前的i-1個元素都是有序的,我們的目的就是找到第i個元素需要放入哪乙個元素後面。
演算法實現:
public class testsort1 ;
//直接插入排序
for (int i = 1; i < a.length; i++) else
}a[j+1] = temp; //找到了插入的位置,將temp放入
}for (int i = 0; i < a.length; i++) }}
直接插入排序,效率相對來說比較低,因為它是按照順序乙個個往前、或者往後找位置。鑑於插入排序中,前i-1個元素已經有序,此時可考慮用二分查詢法查詢第i個元素需要插入的位置,對於資料量很大的排序,用二分查詢的改進效率提公升明顯。
二分插入排序演算法實現:
public class testsort2 ;
system.out.println("排序之前:");
for (int i = 0; i < a.length; i++)
//二分插入排序
sort(a);
system.out.println();
system.out.println("排序之後:");
for (int i = 0; i < a.length; i++)
}private static void sort(int a)
if(left != i)}}
}
java插入排序和氣泡排序
最近正在找工作,由於是找實習,被問到了很多的基礎題,尤其是排序這一塊,現在把自己熟悉的兩中排序寫出來,以供以後複習,氣泡排序演算法執行起來非常慢,但在概念上來說它又是最簡單的,因此氣泡排序演算法在剛開始研究排序技術時是乙個非常好的演算法。以下是氣泡排序要遵循的規則 比較兩個資料 如果前面的資料比後面...
氣泡排序,插入排序
前提 void x sort elementtype a,int n 大多數情況下,為簡單起見,討論從小大的整數排序 n是正整數 只討論基於比較的排序 有定義 只討論內部排序 穩定性 任意兩個相等的資料,排序前後的相對位置不發生改變 沒有一種排序是任何情況下 都表現最好的 氣泡排序 void bub...
氣泡排序 插入排序
學習思路 思路講解 實現 1 通過雙重迴圈,相鄰兩個資料做對比,通過位置交換使其變得有序 2 時間複雜度 分析 解釋 外部迴圈從0開始i 內部迴圈從0開始j,完整迴圈後會將本次最大值放入陣列最後,下次迴圈可忽略相應的尾部資料 length i 1 重複1 2步即可完成排序 實現 public cla...