- 桶排序
int main() {
int a[10], b;
int i, j;
for(i=0; i<10; i++) {
a[i] = 0;
}
for(i=0; i<4; i++) {
scanf("%d", &b);
a[b]++;
}
for(i=0; i<10; i++) {
for(j=1; j<=a[i]; j++) {
printf("%d ", i);
}
}
return 0;
}
- 冒泡排序
int main() {
int a[100], i, j, t, n;
scanf("%d", &n);
for(i=1; i<=n; i++) {
scanf("%d", &a[i]);
}
for(i=1; i<=n-1; i++) {
for(j=1; j<=n-i; j++) {
if(a[j] < a[j+1]) {
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
for(i=1; i<=n; i++) {
printf("%d ", a[i]);
}
return 0;
}
- 快速排序
#include<stdio.h>
int a[101], n;
void quicksort(int left, int right) {
int i, j, t, temp;
if(left > right) {
return;
}
temp = a[left];
i = left;
j = right;
while(i != j) {
while(a[j]>=temp && i<j)
j--;
while(a[i]<=temp && i<j)
i++;
if(i < j) {
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
a[left] = a[i];
a[i] = temp;
quicksort(left, i-1);
quicksort(i+1, right);
return;
}
int main() {
int i, j;
scanf("%d", &n);
for(i=1; i<=n; i++) {
scanf("%d", &a[i]);
}
quicksort(1, n);
for(i=1; i<=n; i++) {
printf("%d ", a[i]);
}
return 0;
}