其实这节课并没有听太懂,但是为了防止忘记,所以直接将郝斌老师的代码扔到了博客上希望我之后多次看之后能真正理解这个排序方法,还有就是郝斌老师的数据结构课程看完了,并没有图的相关,看来我要开始自学图了,加油!!!!
# include <stdio.h>
int FindPos(
int * a,
int low,
int high);
void QuickSort(
int * a,
int low,
int high);
int main(
void)
{
int a[
6] = {-
2,
1,
0, -
985,
4, -
93};
int i;
QuickSort(a,
0,
5);
for (i=
0; i<
6; ++i)
printf(
"%d ", a[i]);
printf(
"\n");
return 0;
}
void QuickSort(
int * a,
int low,
int high)
{
int pos;
if (low < high)
{
pos = FindPos(a, low, high);
QuickSort(a, low, pos-
1);
QuickSort(a, pos+
1, high);
}
}
int FindPos(
int * a,
int low,
int high)
{
int val = a[low];
while (low < high)
{
while (low<high && a[high]>=val)
--high;
a[low] = a[high];
while (low<high && a[low]<=val)
++low;
a[high] = a[low];
}
a[low] = val;
return high;
}