c语言 编写一个排序函数,实现对主函数中数组的升序排序.

如题所述

第1个回答  推荐于2017-05-23
经典的两个排序:
(1)选择排序
#include <stdio.h>
main()
{
int a[5];
int i,j,k,t;
for (i=0;i<5;i++)
scanf("%d",&a[i]);
for (i=0;i<4;i++)
{
k=i;
for(j=i+1;j<5;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
for(i=0;i<5;i++)
printf("%3d",a[i]);
}

(2)冒泡排序

#include <stdio.h>
main()
{
int a[5];
int i,j,t;
for (i=0;i<5;i++)
scanf("%d",&a[i]);
for (i=0;i<4;i++)
for(j=0;j<4-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for (i=0;i<5;i++)
printf("%3d",a[i]);
}来自:求助得到的回答本回答被网友采纳
第1个回答  推荐于2017-05-23
void bubble_sort(int *a, int n)
{
int *p1 = a;
int *p2 = a;
int k;
int j;
for (int i = 0; i < n; i++)
{
p2 = p1;
p2++;
for (j = n - i - 1; j > 0; j--)
{
if (*p2 < *p1) // 升序
{
k = *p1;
*p1 = *p2;
*p2 = k;
}
p2++;
}
p1++;
}
}
相似回答