快速排序演算法的Java實現

2021-06-09 06:55:36 字數 890 閱讀 6709

package com.suifeng.sort;

public class quicksort ;

system.out.println("**********===排序前**********===");

//顯示排序後的陣列

for (int i = 0; i < nums.length; ++i)

system.out.println();

//應用快速排序方法

sort(nums, 0, nums.length - 1);

system.out.println("**********===排序前**********===");

//顯示排序後的陣列

for (int i = 0; i < nums.length; ++i)

system.out.println(""); }

public static void sort(int arr, int low, int high)

// 預設從後往前數

boolean flag = true;

while(low < high)

if(flag)

else

}high++;

low--;

sort(arr,lo,low);

sort(arr,high,hi);

}}

執行結果:

**********===排序前**********===

49,38,65,97,76,13,27,

**********===排序後**********===

13,27,38,49,65,76,97,

演算法的解釋來自於原始碼部分也參考裡邊例項**的是是實現

排序演算法 快速排序的Java實現

所謂快速排序 基於分治的思想,是氣泡排序的改進型。首先在陣列中選擇乙個基準點並把基準點放於序列的開頭 該基準點的選取可能影響快速排序的效率,關於基準點的選擇方法後面再講解 然後分別從陣列的兩端掃瞄陣列,設兩個指示標誌 lo指向起始位置,hi指向末尾 首先從後半部分開始,如果發現有元素比該基準點的值小...

排序演算法 快速排序 java實現

它採用了一種分治的策略,通常稱為分治法。分治法思想 將原問題分解為若干個規模更小但結構與原問題相似的子問題。遞迴地解這些子問題,然後將這些子問題的解組合為原問題的解。對於陣列a,隨機選擇乙個元素作為基準數pos,一般為第乙個元素或最後乙個元素。將該陣列分為兩堆a 0,pos index 1 和 a ...

Java實現快速排序演算法

一 演算法描述 快速排序是對氣泡排序的一種改進。在氣泡排序中,記錄每次都是與相鄰位置上的資料作比較,因此每次只能移動乙個位置。而在快速排序中,記錄的比較和移動都是從兩端向中間進行的。其主要思想 首先在待排序陣列中選取乙個基準值 作為比較物件 然後利用基準值將待排陣列分成2個部分。基準值左邊的陣列的資...