1.水桶法排序
#include"stdio.h"
#define M 10
int main() {
int a[M], i;
int b[100] = {0};
for (i = 0; i < M; i++)
scanf("%d",&a[i]);
/*对M个数进行水桶法排序 自带去重*/
for (i = 0; i < M; i++) {
b[a[i]] = 1;
}
for (i = 0; i < 100; i++) {
if (b[i]) printf("%d\t", i);
}
return 0;
}
运行结果:
2.冒泡排序
#include<stdio.h>
int main() {
int a[10] = { 0 };
printf("input ten number:\n");
int i = 0;
for (i = 0; i < 10; i++)
{
scanf("%d",&a[i]);
}
int t = 0;
int j;
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("排序结果.\n");
for (i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
}
运行结果:
3.选择法排序
#include<stdio.h>
#include<stdlib.h>
#define N 10
int main()
{
int a[N],i,j,min,temp;
for(i=0;i<N;i=i+1)
a[i]=rand()%100; //100以内的随机数
for(i=0;i<N-1;i++)
{
min=i;
for(j=i+1;j<N;j++)
if(a[j]<a[min])
min=j;
if(i!=min)
{
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
for(i=0;i<N;i=i+1)
printf("%5d",a[i]);
}
运行结果: