您的位置:首页 > 其它

算法(1)--插入排序

2016-04-29 09:35 204 查看
第一个算法:插入排序

测试案例:

伪代码:

INSERTION-SORT(A)
for j ← 2 to length[A]
do key ← A[j]
i ← j - 1
while i>0 && A[i]>key
do A[i+1] ← A[i]
i ← i - 1
A[i+1] ← key


源码:

int a[] = {8,6,2,3,1,421,15,6,11,22};
int key,i;
for (int j = 1; j < a.length; j++) {
key = a[j]; //保存当前索引位置的值
i = j-1; //将索引前移

//判断当前索引是否到头和当前索引位置的值是否大于key值
while(i>-1&&a[i]>key){
//如果大于则将当前值后移
a[i+1] = a[i];
// ①索引继续前移
i--;
}
//与①操作呼应,索引后移,保证索引位置数据正确性
a[i+1] = key;
}

for (int j = 0; j < a.length; j++) {
System.out.println(a[j]);
}


该算法对n个数据项进行排序的时间大约:c1 n²

适用于小规模输入,如果输入规模n变得足够大,则合并排序将占据大优势。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: