快速排序.txt.txt
来自「从数组中 任取一个元素 p (可随机取,现在以取第一个为例).以P作为主元,对数」· 文本 代码 · 共 39 行
TXT
39 行
快速排序
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 + =
减小字号Ctrl + -
显示快捷键?