#include <stdio.h>
void quickSort(int arr[], int low, int high)//arr是传进来的数组,low和high是两个指针的预定值
{
int k;
int head = low;//头针值
int tail = high;//尾针值
int PivotKey = arr[head];//设定标定为头指针
if(low >= high)
return;
printf("本次循环开始前,Head/tail/PivotKey(arr_head)的值分别为%d,%d,%d.循环开始.\n",head,tail,PivotKey);
while(head < tail)//当头指针小于尾指针(正常情况下)
{
//反向扫描,后往前扫描一次,如果是正序则尾指针-1,这是个循环.直到不满足才执行arr[head] = arr[tail];
while(head < tail && arr[tail] > PivotKey)//这里有一个点就是条件是"与",即此时比较的可以是head,也可以是arr[tail],
{
printf("改变前的tail指针位置为:%d,\n",tail);
tail
很容易理解的C语言快速排序算法(完整注释+完整输出)
最新推荐文章于 2022-10-18 00:27:53 发布