/*************************************************************************
** 函数名称: QuickSort
** 功能描述: 指针数组快速排序
** 输入参数: char *array[] 指针数组
** int left 起始位置
** int right 结束位置
** 输出参数:
** 返回结果:
**
************************************************************************/
/* 指针数组快速排序 */
int QuickSort(char *array[], int left, int right)
{
if(left>right)
return 0;
/* 取最左边的值为pivot(基准)*/
int i = left;
int j = right;
char *pivot = array[left];
while( i<j )
{
while((i<j) && ((strncmp(pivot, array[j], LEN_MCHNO)<0) || (strncmp(pivot, array[j], LEN_MCHNO)==0)))
j--;
if(i<j )
array[i++] = array[j];
while((i<j) && ((strncmp(pivot, array[i], LEN_MCHNO)>0) || (strncmp(pivot, array[i], LEN_MCHNO)==0)))
i++;
if(i<j)
array[j--]=array[i];
}
array[j] = pivot;
QuickSort(array,left,i-1);
QuickSort(array,i+1,right);
}
相关文章
- 02-21二级指针(二维数组)
- 02-21排序算法----调用库函数qsort进行快速排序
- 02-21内排序:冒泡排序、简单选择排序、直接插入排序、希尔排序、堆排序、快速排序介绍及C语言实现
- 02-21排序数组中只出现一次的数字(剑指offer-70)
- 02-21记录数组转集合(int[]转list)的快速方法,数组转list必须先将数组转为list,int[]转list有问题,不能用,integer[]转list可以使用。
- 02-21数组+双指针+排序__有序数组的平方
- 02-21用函数实现冒泡法排序算法,函数原型为:void BubbleSort(int *a, int n);在 主程序中调用为输入的数组排序。
- 02-21数组使用:反转、工具类、冒泡排序
- 02-21ANSI C遍历二维数组指针地址
- 02-21快速排序 Quick Sort