java排序演算法一 快速排序

2021-08-31 12:51:46 字數 937 閱讀 5938

部分內容摘自:

快速排序步驟為:

從數列中挑出乙個元素,稱為 "基準"(pivot),

重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面(相同的數可以到任一邊)。在這個分割槽退出之後,該基準就處於數列的中間位置。這個稱為分割槽(partition)操作。

遞迴地(recursive)把小於基準值元素的子數列和大於基準值元素的子數列排序。

public class quicksort 

private static > int partition(e array, int begin, int end)

}swap(array, index, end);

return (index);

}private static > void qsort(e array, int begin, int end)

}public static > void sort(e array)

實現**快速排序。

以下為測試類

public class sortingtest 

system.out.println(srcarr.length);

long t1 = system.currenttimemillis();

quicksort.sort(srcarr);

long t2 = system.currenttimemillis();

system.out.println("");

system.out.println("***********************************="+(t2-t1));

}}

對10萬數字資料排序,用了幾十毫秒,這比起冒泡,選擇,插入等排序效率高非常多。

Java排序演算法 快速排序

一.思想 對氣泡排序演算法的一種改進。通過一趟排序將排序的資料分割成兩個部分,其中一部分的所有資料都比另一部分的所有資料都要小,然後再按此方法對這兩部分分別再進行快速排序,依次類推。實現為 開始時先設兩個變數i start,j end 以第乙個元素作為中間點,pivot num i 以j 的形式從後...

java排序演算法 快速排序

陣列 2,6,3,6,5,9,1 輸出 1 2 3 5 6 6 9 private static void paixu int arrs,int h,int e while arrs x arrs e 交換值 int m m arrs h arrs h arrs e arrs e m 2,6,3,6...

java快速排序演算法

package com.head.swift 快速排序 public class main sorts a,0,a.length 1 對陣列a進行公升序排列 輸出陣列 for int i a public static void sorts int a int left int right if i...