#include<stdio.h>
#include<stdlib.h>
void change(int *pa, int *pb)
{
int temp = *pa;
*pa = *pb;
*pb = temp;
}
void show(int *p, int n)
{
printf("数组状态:\n");
for (int i = 0; i < n; i++)
{
printf("%5d", p[i]);
}
printf("\n");
}
void Quicksort(int *p, int left, int right)
{
int i = left;
int j = right + 1;
if (i < j)
{
do
{
do
{
i++;
} while (p[i]<p[left] && i <= right);
do
{
j--;
} while (p[j] >= p[left] && j>left);
if (i < j)
{
change(&p[i], &p[j]);
}
} while (i<j);
show(p, 10);
change(&p[left], &p[j]);
Quicksort(p, left, j - 1);
Quicksort(p, j + 1, right);
}
}
void main()
{
int a[10] = {10, 9, 20, 8, 38, 49, 11, 58, 34, 22};
show(a, 10);
Quicksort(a, 0, 10 - 1);
show(a, 10);
system("pause");
}
C语言之快速排序法学习笔记
最新推荐文章于 2022-05-16 03:09:31 发布