1.冒泡排序(C)以10个数为例
#include<stdio.h>
int main()
{
int a[10];
int i,j,t;
printf("Input 10 numbers:\n");
for(i=0;i<9;i++)
scanf("%d",&a[i]);
printf("\n"); //输入
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf("The storted numbers:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
- 选择排序
从n个数里面找出最小的与arry[0]交换,再从剩下的n-1个数里面找出最小的与a[1]交换…
void sort(int arry[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)//进行n-1趟比较
k=i; //已将有序的序列的标志
for(j=i+1;j<n;j++)
{
if(arry[j]<arry[k])
k=j;
t=arry[k];
arry[k]=arry[i];
arry[i]=t;
}
}
选择排序指针形式
void sort(int *x,int n)
{
int,i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(*(x+j)>*(x+k)) k=j;
t=*(x+i);
*(x+i)=*(x+k);
*(x+K)=t;
}
}