1 选择排序法
#include<stdio.h>
int main(){
int n;
int a[10001];
int min;
scanf("%d", &n);
for(int i = 1; i <= n; i++)
scanf("%d", &a[i]);
for(int i = 1; i <= n; i++){
min = i;
for(int j = i+1; j <= n; j++)
if(a[j] < a[min])
min = j;
if(min != i){
int t = a[i];
a[i] = a[min];
a[min] = t;
}
}
for(int i = 1; i <= n; i++)
printf("%d ", a[i]);
return 0;
}
2 冒泡排序法
#include<stdio.h>
#include<string.h>
#define N 10
void sort(char str[])
{
int i,j;
char t;
for(j=1;j<N;j++)
for(i=0;(i<N-j)&&(str[i]!='\0');i++)
if(str[i]>str[i+1])
{
t=str[i];
str[i]=str[i+1];
str[i+1]=t;
}
}
int main()
{
char a[N];
int i,flag;
for(flag=1;flag==1;)
{
scanf("%s",a);
if(strlen(a)>N)
printf("Too long! Enter again!");
else
flag=0;
}
sort(a);
printf("%s\n",a);
return 0;
}
3 插入排序法
#include<stdio.h>
int main(){
int a[10001];
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i++)
scanf("%d", &a[i]);
for(int i = 2; i <= n; i++){
int p = a[i];
int j = i - 1;
while(j > 0 && a[j] > p){
a[j+1] = a[j];
j = j-1;
}
a[j + 1] = p;
}
for(int i = 1; i <= n; i++)
printf("%d ", a[i]);
return 0;
}