一趟快速排序主要步驟如下:
(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...