知识精讲 -- 插入排序
插入排序就像打扑克牌,我们每抽一张牌,都会将它和手中的已经排好序的牌进行比较,插入到某两张牌之间。
比如下面一组数据
5 3 4 1 7
Copy
我们可以认为抽到的第一张牌是 55,抽第二张牌 33 时,发现 33 比 55小,就将 33 放置到 55 的左边
3 5
Copy
接下来抽第三张牌 44 ,先将 44 放于末位,然后从后往前与它身前的数比较,小于则交换。
3 5 4
3 4 5 //4比5小,交换两数位置,4比3大,停止比较
Copy
接下来抽第四张牌 11 ,先将 11 放于末位,然后从后往前与它身前的数比较,小于则交换。
3 4 5 1
3 4 1 5 //1比5小,交换两数位置
3 1 4 5 //1比4小,交换两数位置
1 3 4 5 //1比3小,交换两数位置
Copy
最后一张牌 77 ,先将 77 放于末位 ,发现它比身前的数要大,则停止比较,完成排序。
1 3 4 5 7
Copy
请你将下面的程序补充完整,将数组从小到大排序并输出
#include<iostream>
using namespace std;
int main(){
int a[20] = {54,34,213,76,98,129,98,54,12,63,9,13,7,99,543,23,77,81,34,26};
for(int i = 1; i <= 19; i++){
for(int j = i ; j >= 1 ; j--){
if( ){
}
else{
}
}
}
for(int i = 0; i <= 19; i++){
cout<<a[i]<<" ";
}
return 0;
}