您的位置:首页 > 编程语言 > C语言/C++

插入排序(C语言实现)

2018-03-20 21:24 211 查看
/*
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>
#define MAX 30

void InsertSort(int A[], int left, int right);

int main()
{
int A[MAX] = {0};
int length = 0, i = 0;
printf("Lenght:\n");
scanf("%d", &length);
printf("numbers:\n");
for(i=0;i<length;i++){
scanf("%d", A+i);
}

InsertSort(A, 0, length-1);

return 0;
}

void InsertSort(int A[], int left, int right)
{
int j = 0, i = 0;
for(j = 1;j<right-left+1;j++){
int key = A[left+j];
i = left+j-1;
while(i>=0 && A[i]>key){
A[i+1]=A[i];
i--;
}
A[i+1]=key;
}
for(i = left; i<=right; i++){
printf("%d ", A[i]);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: