排序演算法之快速排序 左右交換

2021-10-24 06:39:06 字數 514 閱讀 6404

public class fastsort 

public static void fastsort(int arr,int left,int right) else

} // 選取基準元素對陣列進行分割槽,分割槽點左邊全部小於基準元素,右邊全部大於基準元素,並返回獲取分割槽點下標

public static int getindex(int arr, int left, int right)

while (left < right && arr[left] < tmp)

if (left < right) else

} swap(arr,left,right); //將基準與分割槽點元素進行交換,下標未動

return right; //返回分割槽點下標

} //輔助交換方法-傳入陣列索引,交換索引上的兩個元素

public static void swap(int arr,int i,int j)

}

排序演算法 交換排序之快速排序

和歸併排序一樣,快速排序也是一種分治的遞迴演算法。快速排序的思想是 選取乙個樞紐元,將比樞紐元小的元素放樞紐元前面,把比樞紐元小的元素放後面,然後將前面的集合,後面的集合,重複之前的步驟。樞紐元的選取是一門學問,我們要將樞紐元的盡量選取為集合中間值,使得樞紐元兩邊的元素量能更加均勻,避免大小不等的遞...

演算法之排序 交換排序(二)快速排序

快速排序是由氣泡排序改進而得,從無序序列中挑選乙個記錄作為中心記錄,將所有的數值與中心記錄進行比較大的放在中心值右邊,小的放入中心值左邊,然後再對中心值左右子串行進行相同操作 實現 快速排序 author 陳鑫 public class quicksort 將賦值到low位置的 arr low ar...

排序演算法 交換排序 快速排序演算法

快速排序演算法 列印資料 void print list int data list int left int right printf n 核心排序 找到基準位置 挖坑法 int core sort int data list int left int right if i j while i j...