当前位置:  编程技术>c/c++/嵌入式

C++插入排序算法实例

    来源: 互联网  发布时间:2014-10-29

    本文导语:  插入排序 没事喜欢看看数据结构和算法,增加自己对数据结构和算法的认识,同时也增加自己的编程基本功。插入排序是排序中比较常见的一种,理解起来非常简单。现在比如有以下数据需要进行排序: 10 3 8 0 6 9 2 当使用插...

插入排序

没事喜欢看看数据结构和算法,增加自己对数据结构和算法的认识,同时也增加自己的编程基本功。插入排序是排序中比较常见的一种,理解起来非常简单。现在比如有以下数据需要进行排序:

10 3 8 0 6 9 2

当使用插入排序进行升序排序时,排序的步骤是这样的:

10 3 8 0 6 9 2 // 取元素3,去和10进行对比

3 10 8 0 6 9 2 // 由于10比3大,将10向后移动,将3放置在原来10的位置;再取8与前一个元素10进行对比

3 8 10 0 6 9 2 // 同理移动10;然后8再和3比,8大于3,所以不再移动;如此重复下去

……

0 2 3 6 8 9 10

也就是说,我们每一次取一个元素,都要将该元素与之前已经排序好的元素进行比较。

插入排序的最差时间复杂度为O(n^2)。同时,该算法不需要开辟额外的空间,都是在原空间上进行移动操作。

代码实现

代码如下:

#include
using namespace std;
 
void InsertSort(int arr[], int length)
{
     int temp;
     for (int i = 1; i < length; ++i) // 从数组中的第二个元素开始
     {
          temp = arr[i]; // 记录当前的元素
          int j = i - 1;
          while (j >= 0 && temp < arr[j]) // 将当前元素与之前的已经排序好的序列元素进行挨个比较
          {
               arr[j + 1] = arr[j]; // 已经排序好的序列整体向后移动
               --j;
          }
          arr[j + 1] = temp; // 插入当前的元素
     }
}
 
int main()
{
     int arr[10] = {9, 2, 8, 2, 3, 2, 4, 10, 34, 5};
 
     InsertSort(arr, 10);
 
     for (int i = 0; i < 10; ++i)
     {
          cout

    
 
 

您可能感兴趣的文章:

  • C++ MultiMaps 成员 insert():插入元素
  • C++操作MySQL大量数据插入效率低下的解决方法
  • C++ Maps 成员 insert():插入元素
  • C++实现数组的排序/插入重新排序/以及逆置操作详解
  • C++ Lists(链表) 成员 insert():插入一个元素到list中
  • c++双向链表操作示例(创建双向链、双向链表中查找数据、插入数据等)
  • C++ Double Ended Queues(双向队列) 成员 insert():插入一个元素到双向队列中
  • C++ Vectors 成员 insert():插入元素到Vector中
  • C++ Strings(字符串) 成员 insert():插入字符
  • Linux c++库boost unordered_set数据插入及查找代码举例
  • Linux c++库boost unordered_map数据插入及查找代码举例
  • c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
  • c++类库Boost.Bimap(遍历,插入,查找,删除)参考代码
  • C++ stl队列Queue用法介绍:删除,插入等操作代码举例
  • c++ STL关联式容器Map成员函数介绍及查找(find()),插入(insert()),删除(erase())等操作代码举例
  • python插入排序算法的实现代码
  • python 实现插入排序算法
  • JAVA算法起步之插入排序实例
  • java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述
  • Java直接插入排序算法实现
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python实现冒泡,插入,选择排序简单实例
  • java插入排序 Insert sort实例
  • sql server 触发器实例(判断是插入、删除,还是修改)
  • C# 批量插入Mysql数据的实例代码
  • codeigniter使用技巧批量插入数据实例方法分享
  • java操作mysql入门代码实例(含插入、更新和查询)
  • php数据库批量插入实例
  • Python操作sqlite3快速、安全插入数据(防注入)的实例
  • HTML 5 <br> 标签-插入简单的换行符
  • access中记录插入时是不是总在最后一行插入的?
  • MySQL插入数据时插入无效列的解决方法
  • 在javascript中(如onclick事件中)可以插入用JSP编写的验证权限的代码吗?那该怎样插入呢?
  • 向数据库中插入数据并返回当前插入的行数及全局变量@@IDENTITY应用
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • 循环里面执行sql插入语句只执行第一个插入,为什么??
  • 用PreparedStatement ps 在数据库中插入记录,但还未提交事务,此时再用Delete语句为什么删除不了用 ps刚才插入的记录,如何可以删除未这
  • 请问:在用proc方式往数据库插入数据时,我能不能定义一个结构体,它与表的每一项对应,将结构体赋好值后,再只将这个结构体插入表中,这行不行啊?
  • 当用servlet与jsp在数据库中插入一条记录时,此时是用tomcat服务器的,当页面显示完成插入时,如果此时按下F5或者选择刷新,系统就会提示
  • 我想插入一条记录到库中,但有要判断username 是否存在于库中/(插入我以实现)<大家来看看)
  • 急问题:在java中嵌入sql的插入语句,插入成功,但是出现异常
  • mssql 两种数据插入方式
  • HTML标签参考手册 iis7站长之家
  • vi 中如何实现列插入呢?
  • 如何向数据库插入中文记录?
  • 有没有在jsp中实现对tree型结构进行删除、插入操作
  • 有谁做过一次性插入5000多条记录到数据库中?
  • 中文插入SQL数据库中变成了乱码?
  • 从jsp想oracle插入记录的顺序问题
  • 如何获得刚插入数据的id递增值




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3