算法基础2:插入排序

来源:互联网 发布:室内平面方案户型优化 编辑:程序博客网 时间:2024/05/20 08:01
#include <stdio.h>#define MAXLEN 100void insertionSort(int arr[], int length);void showSeq(int arr[], int length);int main(){    int arr[MAXLEN];    int n, i;    while (1 == scanf("%d", &n))        // read the length of sequence    {        if (0 == n) break;              // break if n == 0        for (i = 0; i < n; i++)         // read n numbers            scanf("%d", &arr[i]);        showSeq(arr, i);        insertionSort(arr, i);          // insertion sort        showSeq(arr, i);    }    return 0;}void insertionSort(int arr[], int length){    int i, j, key;    for (j = 1; j < length; j++)    {        key = arr[j];        i = j - 1;        while (i >= 0 && arr[i] > key)    //  向前依次比较        {            arr[i+1] = arr[i];            i--;        }        arr[i+1] = key;    }}void showSeq(int arr[], int length){    int i = 0;    while (i < length)        printf("%d ", arr[i++]);    putchar('\n');}
0 0
原创粉丝点击