快速排序笔记
代码实现Golang:
待补充
代码实现C++:
#include <stdio.h>
void qSort(int a[], int left, int right)
{
if(left>= right)
{
return;
}
int first= left;
int last= right;
int key = a[first]; /*用字表的第一个记录作为枢轴*/
while(first!= last)
{
while(a[last] >= key && first < last )
{
--last;
}
a[first] = a[last]; /*将比第一个小的移到低端*/
while( a[first] <= key && first < last )
{
++first;
}
a[last] = a[first]; /*将比第一个大的移到高端*/
}
a[first] = key; /*枢轴记录到位*/
Qsort(a, low, first-1);
Qsort(a, first+1, right);
}
int main()
{
int a[] = {99,11,55,44, 66,33,22};
qSort(a, 0, sizeof(a) / sizeof(a[0]) - 1);
for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
{
printf("%d--",a[i] );
}
return 0;
}