快速排序簡單的說就是選擇乙個基準元素,將比它小的數放在一邊,比它大的還有與它相等的數放到另一邊,此時基準元素在其排好序後的正確位置。再對這個數的兩邊再遞迴上述方法。
【主要思想】如下:
將兩個指標i,j分別指向表的起始和最後的位置。
反覆操作以下兩步:
(1)j逐漸減小,並逐次比較j指向的元素和目標元素的大小,若p(j)(2)i逐漸增大,並逐次比較i指向的元素和目標元素的大小,若p(i)>t則交換位置。
直到i,j指向同乙個值,迴圈結束。
步驟**:
1)首先設定兩個變數i,j。分別指向序列的首尾元素。
2)以第乙個元素為基準,從小到大進行排列。讓j從後向前進行查詢,直到找到第乙個小於66的元素。則將最後乙個j指向的數23,和i指向的66交換位置。然後將i從前向後查詢,直到找到第乙個大於66的元素76。
3)將76和66位置互換。讓j從後向前進行查詢,直到找到第乙個小於66的元素57。
4)將57和66交換位置。
5)然後將i從前向後查詢,直到找到第乙個大於66的元素81.
6)將81和66交換位置。讓j從後向前進行查詢,直到找到第乙個小於66的元素26。
7)將26和66交換位置。此時i,j都同時指向了目標元素66。查詢停止。所得到的序列就是第一趟排序的序列。第二次排序依然如此。
**示例:
public class quicksort
public void quicksort(int data,int low,int high){
if(low參考:
快速排序法
一 快速排序演算法的基本特性 時間複雜度 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...
快速排序法
快速排序法思想 在待排序的n個資料中取第乙個數字為基準數,陣列最前面放乙個標桿,陣列最後麵放乙個標桿,通過基準數和標桿 i,j 出的數進行比較,實現每次排序完時候,共三組數,不大於基準數 基準數 不小於基準數 舉例說明 5 i 4,6,8,3,9,2 j 基準數5 標桿 i 指向5位置,標桿 j 指...