C++编程基础题解:插入排序

Posted 机房日子青少年编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++编程基础题解:插入排序相关的知识,希望对你有一定的参考价值。

题目描述

   从键盘输入n个正整数,用插入排序法将他们按从小到大的顺序排列后输出。

输入

   输入文件包含两行,第1行为一个正整数n,n<=10000,第2行为n个整数。

输出

   输出文件仅一行,为排好序的n个数。数字之间用空格分开

样例输入

8

36 25 48 12 65 43 20 58

样例输出

12 20 25 36 43 48 58 65

插入排序思想:

     插入排序和打牌有点相似,为了方便打牌,抓牌时一般一边抓牌一边按花色和大小插入恰当的位置,当抓完所有的牌时,手中的牌便是有序的,这排序方法即插入排序。

      首先对数组的头两个元素进行排序,然后根据前两个元素排序的情况再把第三个元素插入到相应的位置,但要注意一个重要的问题:在插入这个元素前,应当先将将它后面的所有元素后移一位,以保证插入位置的原元素不被覆盖。

      例如:设n=8,数组中8个元素是: 36,25,48,12,65,43,20,58,执行插入排序程序后,其数据变动情况:

第0步:[36] 25 48 12 65 43 20 58 

第1步:[25 36] 48 12 65 43 20 58 

第2步:[25 36 48] 12 65 43 20 58 

第3步:[12 25 36 48] 65 43 20 58 

第4步:[12 25 36 48 65] 43 20 58 

第5步:[12 25 36 43 48 65] 20 58 

第6步:[12 20 25 36 43 48 65] 58 

第7步:[12 20 25 36 43 48 58 65]

参考程序和运行结果:


以上是关于C++编程基础题解:插入排序的主要内容,如果未能解决你的问题,请参考以下文章

父子组合学C++信竞编程:26.简化桶排序基础-计数数组

编程基础技能

C++基础数据结构与算法操作系统网络编程

PTA基础编程题目集

《编程能力基础》刷题笔记 1 ~ 20 题

《ACM国际大学生程序设计竞赛题解Ⅰ》——基础编程题