8種Java排序演算法總結1 ZZ

2021-08-30 14:25:09 字數 560 閱讀 3174

這裡主要對8種排序演算法做個總結,分別是插入排序,選擇排序,氣泡排序,希爾排序,歸併排序,堆排序,快速排序以及基數排序。

1、 插入排序

比較和交換的時間複雜度為o(n^2),演算法自適應,對於資料已基本有序的情況,時間複雜度為o(n),演算法穩定,開銷很低,適合於資料已基本有序或者資料量小的情況。

public void insertionsort() 

}count2++;

flag=in>0&&a[in-1]>=temp;

} a[in] = temp;

}system.out.println("複製次數為:" + count1 + " 比較次數為:" + count2);

}

2、 選擇排序

演算法不穩定,o(1)的額外的空間,比較的時間複雜度為o(n^2),交換的時間複雜度為o(n),並不是自適應的。在大多數情況下都不推薦使用。只有在希望減少交換次數的情況下可以用。

public void selectionsort()}}

}

8種排序演算法總結

1.直接插入排序 原理 將陣列分為無序區和有序區兩個區,然後不斷將無序區的第乙個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。實現 void sortnumber method2 int array,int length ...

8種排序演算法

學習了這麼多的排序演算法,還沒有做個總結,呵呵 氣泡排序 氣泡排序是最慢的排序演算法。在實際運用中它是效率最低的演算法。它通過一趟又一趟地比較陣列中的每乙個元素,使較大的資料下沉,較小的資料上公升。它是o n 2 的演算法。快速排序 快速排序是乙個就地排序,分而治之,大規模遞迴的演算法。從本質上來說...

8種排序演算法

1.選擇排序 兩層迴圈巢狀,0到n 1選出最小的,與第0個交換,縮小集合為1到n 1,選出最小的,與第乙個交換 時間複雜度 o n2 空間複雜度 因為中間只增加了兩個新變數,儲存最小值和下標,所以空間複雜度為o 1 當陣列為已排序狀態時,仍需要n次比較,最好的情況仍需要o n2 public sta...