源**:
[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...