快速排序
第一行输入要排序数字的个数
第二行输入要排序的数字
#include <stdio.h>
void sorted(int *arr,int left,int right);
int main(void)
{
int n;
scanf("%d",&n);
int arr[n];
for(int a = 0;a < n;a++)
scanf("%d",&arr[a]);
sorted(arr , 0 , (n-1));
int i;
for(i = 0;i < n;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
void sorted(int *arr,int left,int right)
{
if(left >right)
return;
int i = left;
int j = right;
int temp = arr[left];
while(i != j)
{
while(i < j && arr[j] >= temp)
{
j--;
}
while(i < j && arr[i] <= temp)
{
i++;
}
if(i < j)
{
int t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
arr[left] = arr[j];
arr[j] = temp;
sorted(arr,left,j-1);
sorted(arr,j+1,right);
}