int main()
{
int n,i;
printf("请输入数组个数n=");
scanf("%d",&n);
int a[100]={0};
printf("请输入数组元素\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
//sort(a,n);
//select_sort(a,n);
quick_sort(a,0,n-1);
for(i=0;i<n;i++)
{
if(i==n-1)
printf("%d\n",a[i]);
else
printf("%d,",a[i]);
}
return 0;
}
冒泡排序
//冒泡
void sort(int * a,int n)
{
int i;
int j;
int tmp;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
选择排序
//选择排序
void select_sort(int * a,int n)
{
int i,j,k;
int tmp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(a[j]<a[k])
k=j;
}
if(k!=i)
{
tmp=a[i];
a[i]=a[k];
a[k]=tmp;
}
}
}
快速排序
//快速排序
void quick_sort(int * a,int left,int right)
{
if(left>=right)
return ;
int i=left;
int j=right;
int key=a[i];
while(i<j)
{
while(i<j && a[j]>=key)
j--;
a[i]=a[j];
while(i<j && a[i]<=key)
i++;
a[j]=a[i];
}
a[i]=key;
quick_sort(a,left,i-1);
quick_sort(a,i+1,right);
}