insert sort

来源:互联网 发布:如何取消数据有效性 编辑:程序博客网 时间:2024/05/18 17:24

插入排序时一种原地排序算法,稳定的


伪代码

INSERT-SORT(A)

1    for i <- 2 to lenght[A]

2        do key <- A[j]

3        j <- i-1

4        while j > 0 and A[j] > key

5            do A[j+1] <- A[j]

6            j <- j-1

7        do A[j+1] <- key


#include <stdio.h>void insertsort(int a[], int left, int right){    int i;if (left > right)        return;    for (i = left+1; i <= right; i++) {int key = a[i];        int j = i;        while (j > left && a[j-1] > key) {a[j] = a[j-1];            j--;}        a[j] = key;}    return;}int main(void){    int i;    int a[] = {1, 9, 2, 8, 3, 7, 4, 0, 6, 5};/*    for (i = 1; i < 10; i++) {        int key = a[i];int j = i;        while (j > 0 && a[j-1] > key) {a[j] = a[j-1];            j--;}        a[j] = key;}*/    insertsort(a, 0, 9);    for (i = 0; i < 10; i++) {printf("%d ", a[i]);}return 0;}


原创粉丝点击