插入排序

来源:互联网 发布:java 状态机设计模式 编辑:程序博客网 时间:2024/05/29 04:32

伪代码:

INSERTION-SORT(A)

1   for j = 2 to A.length

2       key = A[j]

3       // Insert A[j] into the sorted sequence A[1...j-1].

4       i = j - 1

5       while i > 0 and A[i] > key

6            A[i+1] = A[i]

7            i = i - 1

8       A[i+1] = key

源代码:

#include <stdio.h>void insert_sort(int a[], int n);void print_elem(int a[], int n);int main(void){    int a[6] = {5, 2, 4, 6, 1, 3};    insert_sort(a, 6);    print_elem(a, 6);    return 0;}void insert_sort(int a[], int n){    int i, j, key;    for (j = 1; j < n; j++)    {        key = a[j];        i = j - 1;        while (i >= 0 && a[i] > key)        {            a[i+1] = a[i];            i--;        }        a[i+1] = key;    }}void print_elem(int a[], int n){    int i;    for (i = 0; i < n; i++)        printf("%d ", a[i]);    printf("\n");}

编译器:gcc 4.6.1

原创粉丝点击