這裡主要對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...