赞
踩
思想:分治 递归
首先找到一个中间值
5 7 9 1 0
中间值 5
第一次 0 7 9 1 5
0 1 9 7 5
#include <stdio.h>
int arr[5] = { 5,6,9,8,7 };
void quick_sort( int l ,int r )
{
int i = l - 1 ;
int j = r + 1;
int temp = 0;
int x = arr[l];
if( l >= r )
{
return ;
}
while( i < j )
{
do
{
i++;
}while( arr[i] < x );
do
{
j--;
}
while( arr[j] > x );
if( i < j )
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
quick_sort( l , j );
quick_sort( j + 1 , r ); 防止出现死循环
}
int main()
{
int i = 0;
quick_sort(0,4);
for( i = 0 ; i <= 4 ; i++)
{
printf("%d ",arr[i]);
}
return 0;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。