1、从尾至头,升序
#include <stdio.h> #define NUMBER 5 void sort_1(int x[], int n) { int i, j; for(i = 0; i < n - 1; i++) { for(j = n - 1; j > i; j--) { if(x[j] < x[j - 1]) { int tmp = x[j]; x[j] = x[j - 1]; x[j - 1] = tmp; } } } } int main(void) { int i, a[NUMBER]; puts("please input the elements."); for(i = 0; i < NUMBER; i++) { printf("NO.%d = ", i + 1); scanf("%d", &a[i]); } sort_1(a, NUMBER); puts("show the sorting result."); for(i = 0; i < NUMBER; i++) { printf("a[%d] = %d ", i, a[i]); } return 0; }
2、从头至尾,升序
#include <stdio.h> #define NUMBER 5 void sort_2(int x[], int n) { int i, j; for(i = 0; i < n - 1; i++) { for(j = 1; j < n - i; j++) { if(x[j] < x[j - 1]) { int tmp = x[j]; x[j] = x[j - 1]; x[j - 1] = tmp; } } } } int main(void) { int i, a[NUMBER]; puts("please input the elements."); for(i = 0; i < NUMBER; i++) { printf("NO.%d = ", i + 1); scanf("%d", &a[i]); } sort_2(a, NUMBER); puts("show the sorting result."); for(i = 0; i < NUMBER; i++) { printf("a[%d] = %d ", i, a[i]); } return 0; }
3、从尾至头,降序
#include <stdio.h> #define NUMBER 5 void sort_3(int x[], int n) { int i, j; for(i = 0; i < n - 1; i++) { for(j = n - 1; j > i; j--) { if(x[j] > x[j - 1]) { int tmp = x[j]; x[j] = x[j - 1]; x[j - 1] = tmp; } } } } int main(void) { int i, a[NUMBER]; puts("please input the elements."); for(i = 0; i < NUMBER; i++) { printf("NO.%d = ", i + 1); scanf("%d", &a[i]); } sort_3(a, NUMBER); puts("show the sorting result."); for(i = 0; i < NUMBER; i++) { printf("a[%d] = %d ", i, a[i]); } return 0; }
4、从头至尾;降序
#include <stdio.h> #define NUMBER 5 void sort_4(int x[], int n) { int i, j; for(i = 0; i < n - 1; i++) { for(j = 1; j < n - i; j++) { if(x[j] > x[j - 1]) { int tmp = x[j]; x[j] = x[j - 1]; x[j - 1] = tmp; } } } } int main(void) { int i, a[NUMBER]; puts("please input the elements."); for(i = 0; i < NUMBER; i++) { printf("NO.%d = ", i + 1); scanf("%d", &a[i]); } sort_4(a, NUMBER); puts("show the sorting result"); for(i = 0; i < NUMBER; i++) { printf("a[%d] = %d ", i, a[i]); } return 0; }