实现冒泡排序,插入排序,选择排序,其余排序类型后面再补上。
#include <stdio.h>
#define MAXN 9void swap(int *a, int *b);
void print(int a[], int n);
void bubble_sort(int a[], int n);
void insertion_sort(int a[], int n);
void selection_sort(int a[], int n);int main()
{int i, n;int a[MAXN] = {9,4,5,7,0,2,6,3,1};printf("Before sorted the array is:");print(a, MAXN);printf("\n");//bubble_sort(a, MAXN);//insertion_sort(a, MAXN);selection_sort(a, MAXN);printf("After sorted the array is:");print(a, MAXN);printf("\n");return 0;
}void swap(int *a, int *b){int tmp = 0;tmp = *a;*a = *b;*b = tmp;
}void print(int a[], int n){for( int i = 0; i < n; i++ )printf(" %d", a[i]);
}//bubble sort
void bubble_sort(int a[], int n){int i = 0, j = 0;int flag = 0;for (i = n - 1; i > 0; i--){flag = 0;for (j = 0; j < i; j++){if (a[j] > a[j+1]){swap(&a[j], &a[j+1]);flag = 1;}}if (flag == 0){break;}}
}//insertion sort
void insertion_sort(int a[], int n){int i = 0, tmp = 0, j = 0;for (i = 1; i < n; i++){tmp = a[i]; for (j = i; j > 0 && a[j-1] > tmp; j--){a[j] = a[j-1];}a[j] = tmp;}
}//selection sort
void selection_sort(int a[], int n){int i = 0, j = 0;for (i = 0; i < n - 1; i++){for (j = i + 1; j < n; j++){if (a[j] < a[i]){swap(&a[i], &a[j]);}}}
}