1. 程式人生 > >2.1 初級排序算法

2.1 初級排序算法

all fault 語言 random ted urn alloc default n)

2.1demo的C語言實現

/*
 * 實現數組從小到大順序排列
 */
#include <stdio.h>
#include <stdlib.h>

#define less(a,b) (a<b)
#define exch(array, a, b) do {        int tmp = array[a];                array[a] = array[b];            array[b] = tmp;                } while(0)

/*
 * 選擇排序法
 */
void selectSort(int
*array, int size) { int i, j; for (i = 0; i < size; i++) { int min = i; for (j = i+1; j < size; j++) { if (less(array[j], array[min])) min = j; } exch(array, i, min); } } /* * 插入排序法 */ void insertSort(int *array, int
size) { int i, j; for (i = 1; i < size; i++) { for (j = i; j>0 && less(array[j], array[j-1]); j--) { exch(array, (j-1), j); } } } void show(int *array, int size) { int i; for (i = 0; i < size; i++) { printf("%d\n
", array[i]); } printf("\n"); return; } int isSorted(int *array, int size) { int i; for (i = 1; i < size; i++) if (!less(array[i-1], array[i])) return 0; return 1; } void init_array(int *array, int size) { int i; for (i = 0; i < size; i++) { array[i] = random(); } } #define DEFAULT_SIZE 20 int main() { int *array = malloc(DEFAULT_SIZE*sizeof(int)); init_array(array, DEFAULT_SIZE); show(array, DEFAULT_SIZE); selectSort(array, DEFAULT_SIZE); show(array, DEFAULT_SIZE); insertSort(array, DEFAULT_SIZE); show(array, DEFAULT_SIZE); return 0; }

2.1 初級排序算法