快速排序,採用遞迴實現

2021-10-25 10:28:03 字數 1222 閱讀 3912

一趟快速排序主要步驟如下:

(1) 設定兩個變數,l、r,初始變數分別為left和right,表示待排序列的其實下標和終止下標。

(2)將第l個記錄暫時存在變數pivot中,這個記錄可以隨意選取,相當於基準值,pivot=arr[l]。

(3) 從下標為r的位置向前搜尋,當找到比基準值小的數時,將其移動到下標為l的位置上,同時l=l+1

(4) 從下標為l的位置向後搜尋,當找到比基準值大的數時,將其移動到下標為r的位置上,同時r=r-1

(5)重複(3)(4)的步驟,直到l==r時停止搜尋

(6)支點記錄到位 arr[l]=pivot

第一次快排之後的結果為[25,39,8] ,52,[70,95,67,52]

(7) 使用遞迴

package it_01_digui;

public

class

quicksortarr

;partition

(arr,

0,arr.length-1)

;// quicksort(arr,0,arr.length-1);

for(

int i : arr)

}public

static

void

partition

(int

arr,

int left,

int right)

if(lwhile

(larr[l])if

(l} arr[l]

=pivot;

//支點記錄到位

//遞迴

partition

(arr,left,l-1)

;partition

(arr,l+

1,right);}

}private

static

void

quicksort

(int arr,

int l,

int r)

arr[r1]

=z;quicksort

(arr,l,r1-1)

;quicksort

(arr,r1+

1,r);}

}// private void qsort(int arr,int left,int right)

// }

}

快速排序 遞迴實現

快速排序演算法 用到了 分治法 遞迴演算法 package com.xiahui public class quicksort quicksort quicksort new quicksort quicksort.quicksort a,0,6 for int i 0 i a.length i p...

快速排序 遞迴實現

快速排序演算法 用到了 分治法 遞迴演算法 package com.xiahui public class quicksort quicksort quicksort new quicksort quicksort.quicksort a,0,6 for int i 0 i a.length i p...

遞迴實現快速排序

所有查詢中hash查詢效率最高,在所有排序中,快速排序的效率也是最高的。採用遞迴函式的方法來實現快速排序!include include include intquick sort int int,int int partion int int,int int main int argc,const...