2.1 初级排序算法
Posted rivsidn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.1 初级排序算法相关的知识,希望对你有一定的参考价值。
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 初级排序算法的主要内容,如果未能解决你的问题,请参考以下文章