Java的快速排序法

2021-08-30 01:23:49 字數 819 閱讀 9396

花了很久的時間才搞定,根據演算法導論裡面的偽**寫的

最初在網上找的例子都有問題,不知為啥,都把我給搞暈了

然後按偽**來寫,也出錯,真是很鬱悶

然後全部刪掉重新寫了很多次,突然間就寫好了

主要難點在於partition函式,裡面的i和j的關係,它們的值在什麼時候進行交換

可能是很久沒有考慮過資料結構的東東了

因此今天花了很多時間來做這個

package cn.qs.util;

public class sortutil

} public int partition(int array, int p, int r)

}//是把進行比較的值(最初放在了陣列最後)與該值正確的位置進行互換

this.swap(i+1, r, array);

return i + 1;

} /**

* 陣列內的交換

* @param a

* @param b

* @param arraysort

*/private void swap(int a, int b, int arraysort)

/*** @param args

*/public static void main(string args) ;

// int arrays = ;

sortutil su=new sortutil();

su.quicksort(arrays, 0, arrays.length-1);

for(int i=0;i

Java 快速排序優化 聚集元素法

找基準 第一次快速排序 找基準 public static int partion int array,int low,int high if low high else 從前找 while low high array low tmp if low high else array low tmp ...

快速排序法

一 快速排序演算法的基本特性 時間複雜度 o n lgn 最壞 o n 2 空間複雜度 o n lgn 不穩定。快速排序是一種排序演算法,對包含n個數的輸入陣列,平均時間為o nlgn 最壞情況是o n 2 通常是用於排序的最佳選擇。因為,基於比較的排序,最快也只能達到o nlgn c void q...

快速排序法

include stdafx.h include vos.h define table mid machine name midmachine define table midmach colname id id define table midmach colname ip ip define t...