?? 快速排序.txt.txt
字號:
快速排序
void QuickSort(int low,int high,int *array)
{
int pos;
if(low<high)
{
pos=SPLIT(low,high,array); //以array[low]進行劃分,pos最為劃分點
//前一部分<array[low],后一部分,反之
QuickSort(low,pos-1,array); //對劃分后的前一部分遞歸處理
QuickSort(pos+1,high,array); //對劃分后的后一部分遞歸處理
}
}
int SPLIT(int low,int high,int *array)
{
int temp=array[low]; //用temp來記錄劃分數
while(low<high)
{
while(array[high]>temp&&low<high) //尋找小于temp的數
high--;
if(low==high)
break;
else
{
array[low]=array[high];
low++;
}
while(array[low]<temp&&low<high) //尋找大于temp的數
low++;
if(low==high)
break;
else
{
array[high]=array[low];
high--;
}
}
array[low]=temp; //最終low=high作為劃分點,并將劃分數存于array[low]
return low;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -