标签:
如果排列对象是数组,上边第二个步骤就麻烦点。下边是在不使用打的临时内存区域的情况下,对数组进行分类
的思路(默认为升序排序):
#define SWAP(a,b){int temp; temp=a; a=b; b=temp;}
void quick_sort_sub(int*data,int left,int right)
{
int left_index=left;
int right_index=right;
int pivot=data[(left+right)/2];
while(left_index<=right_index)
{
for(;data[left_index]<pivot;left_index++)
;
for(;data[right_index]<pivot;right_index++)
;
if(left_index<=right_index)
{
SWAP(data[left_index],data[right_index]);
left_index++;
right_index--;
}
}
if(right_index>left)
{
quick_sort_sub(data,left,right_index);
}
if(left_index<right)
{
quick_sort_sub(data,left_index,right);
}
}
void quick_sort(int*data,int data_size)
{
quick_sort_sub(data,0,data_size-1);
}
标签:
原文地址:http://www.cnblogs.com/henghenghaha/p/4506538.html