資料結構與演算法 排序演算法 快速排序

2021-07-29 01:46:43 字數 842 閱讀 5522

源**:

[cpp]view plain

copy

#include

void

quicksort(

int*,

int,

int);  

intfindposs(

int*,

int,

int);  

intmain()  

;  quicksort(arry,0,6);  

printf("after sorted:\n"

);  

for(i=0;i<7;i++)  

printf("%d "

,arry[i]);  

printf("\n"

);  

return

0;  

}  //快速排序函式,通過遞迴實現

void

quicksort(

int*a,

intlow,

inthigh)  

return

;  }  

//該函式返回分割點數值所在的位置,a為待排序陣列的首位址,

low剛開始表示排序範圍內的第乙個元素的位置,逐漸向右移動,  

high剛開始表示排序範圍內的最後乙個位置,逐漸向左移動  

intfindposs(

int*a,

intlow,

inthigh)  

//此時low=high

a[low] = val;  

return

low;  

}  

資料結構與演算法 快速排序

基礎概念 快速排序,聽這個名字就能想到它排序速度比較快方法,是一種分治思想。所謂分治,就是指以乙個數為基準,將序列中的其他數往它兩邊 扔 以從小到大排序為例,比它小的都 扔 到它的左邊,比它大的都 扔 到它的右邊,然後左右兩邊再分別重複這個操作,不停地分,直至分到每乙個分割槽的基準數的左邊或者右邊都...

資料結構與演算法 快速排序

快速排序在實際應用中使用廣泛,效果也高。快排使用的是分治策略,一組序列基於某乙個基準值分成兩個大小的子串行,遞迴排序子串行,最終得到有序的序列。快排的平均時間複雜度為o nlogn 演算法的實現步驟 1.在序列中挑選乙個基準值,我們可以預設第乙個數為基準值 2.從兩邊的數值跟基準值作對比,數值小的放...

資料結構與演算法 快速排序

程式 package com.nicchagil.generics.study.no099快速排序 public class quicksort print array,left,right int standardindex left int standard array standardinde...