马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <stdlib.h>
void quicksort (int arr[], int left, int size) // size为数组元素个数
{
int i,j;
i = left; //左边数据的位置
j = size-1; //右边数据的位置
int temp; //替换用的变量
int pivot = arr[(size-1)/2]; //基准点
while (i <= j)
{
while (arr[i] < pivot)
{
i++;
}
while (arr[j] > pivot)
{
j--;
}
if (i <= j)
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
if (i < (size-1))
{
quicksort (arr, i, size-1);
}
if (j > left)
{
quicksort (arr, left, j);
}
}
//打印数组
void printarr (int arr[], int size)
{
for (int i = 0; i < size; i++)
{
printf ("%d ", arr[i]);
}
printf ("\n");
}
int main()
{
int arr[7] = {1, 5, 2, 2, 3, 4, 3};
int size = 7;
int left = 0;
printarr (arr, size);
quicksort (arr, left, size);
printarr (arr, size);
return 0;
}
|