直接插入排序
直接插入排序:
时间复杂度: O(n2)
空间复杂度: O(1)
稳定&简单
#include <stdio.h> #define swap(x,y) { int tmp; tmp = x; x = y; y = tmp;}
void print_array(int *array, int num) { int i; for(i = 0; i < num; i++) { printf("%d ", array[i]); } printf ("\n"); }
void direct_sort(int *array, int num) { int i, j; for(i = 0; i < num; i++) { for( j = i + 1; j > 0; j--) { if(array[j] < array[j - 1]) { swap(array[j], array[j-1]); } } } } int main() { int array[10] = {2, 5, 8, 3, 1, 7, 9, 6, 0, 4}; direct_sort(array, 10); print_array(array, 10); return 0; }