分治算法-快速排序
程序员文章站
2022-03-24 15:45:26
...
快速排序:大部分人最喜欢用的一种排序算法。
void Quick_Sort(int arr[], int begin, int end){
if(begin > end) // 跳出递归的条件。
return;
int tmp = arr[begin]; // 基准tmp。
int i = begin;
int j = end;
while(i != j){ // 两个哨兵相遇结束循环。
while(arr[j] >= tmp && j > i)
j--;
while(arr[i] <= tmp && j > i)
i++;
if(j > i){ // 这里的是两个哨兵都走不动了之后就交换两者的位置。
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
arr[begin] = arr[i]; //将找到的相遇的位置与最初的基准交换位置。
arr[i] = tmp;
Quick_Sort(arr, begin, i-1); // 递归找前半部分。
Quick_Sort(arr, i+1, end); // 递归后半部分。
}
上一篇: 魅族18和魅族17哪款好 魅族18和魅族17区别对比
下一篇: 家有俩宝