插入排序

soberzml 2018-03-29 原文

插入排序

#include "stdafx.h"

#include<iostream>
using namespace std;
void InsertSort(int a[], int n)
{
    for (int j = 1; j < n; j++)
    {
        int key = a[j]; //待排序第一个元素
        int i = j - 1;  //代表已经排过序的元素最后一个索引数
        while (i >= 0 && key < a[i])
        {
            //从后向前逐个比较已经排序过数组,如果比它小,则把后者用前者代替,
            //其实说白了就是数组逐个后移动一位,为找到合适的位置时候便于Key的插入
            a[i + 1] = a[i];
            i--;
        }
        a[i + 1] = key;//找到合适的位置了,赋值,在i索引的后面设置key值。
    }
}
void main() {
    int d[] = { 12, 15, 9, 20, 6, 31, 24 };
    cout << "输入数组  { 12, 15, 9, 20, 6, 31, 24 } " << endl;
    InsertSort(d,7);
    cout << "排序后结果:";
    for (int i = 0; i < 7; i++)
    {
        cout << d[i]<<" ";
    }
 
}
 
发表于 2018-03-29 21:04 ZhangManlun 阅读() 评论() 编辑 收藏

 

版权声明:本文为soberzml原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/soberzml/p/8672423.html

插入排序的更多相关文章

  1. 插入排序讲解

    Θ2018-10-28 16:53:20 开始写         1 package algorithms; […]...

  2. JavaScript 数据结构与算法之美 – 冒泡排序、插入排序、选择排序

    1. 前言 算法为王。 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远。 笔者写的 JavaSc […]...

  3. 这是我见过最详细的十大排序算法介绍了,没有之一!(十大排序算法详解)

    作者: C you again,从事软件开发 努力在IT搬砖路上的技术小白公众号: 【C you again】 […]...

  4. 排序算法|插入排序

    目录 1. 插入排序的思想 2. 可优化点 3. 代码实现 4. 复杂度 本博客转载自漫画:什么是插入排序? […]...

  5. 看动画学算法之:排序-插入排序

    目录 简介 插入排序的例子 插入排序的java程序 插入排序的时间复杂度 简介 插入排序就是将要排序的元素插入 […]...

  6. 【数据结构与算法】—— 插入排序

    插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这 […]...

  7. 十大经典排序算法最强总结(含Java、Python码实现)

    引言 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如 […]...

  8. 春眠不觉晓,排序算法知多少?(图解十大排序算法)

    作者: C you again,从事软件开发 努力在IT搬砖路上的技术小白公众号: 【C you again】 […]...

随机推荐

  1. 详解JavaScript对象继承方式

    一、对象冒充 其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式)。因 […]...

  2. 如何上传图片到七牛云

    下面介绍Element-ui中Upload组件如何把图片上传的七牛云(免费版本,有流量限制) 一、准备工作 1 […]...

  3. 数组

    1.什么是数组? 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据 […]...

  4. MySQL在本机无法基于localhost访问的问题解决

    引言: 在本地访问数据库之时,一般使用localhost, 127.0.0.1来进行数据库访问,但是笔者这几天 […]...

  5. 电脑如何进行整网页截屏(网页截图)

    工具/原料 360浏览器 方法/步骤 在这里也不想讲太复杂的,我们打开360浏览器,查看其设置(了解一个软件的 […]...

  6. 在windows中使用labelimg工具进行数据集标注

    文章分成两个部分,第一部分,labelimg工具的安装;第二部分,labelimg工具的使用方法。 第一部分: […]...

  7. 如何开发一个APP——转自知乎

    作者:简单点链接:https://www.zhihu.com/question/22999185/answer […]...

  8. 高德地图 API 计算两个城市之间的距离

    1. 目前在项目中,遇到一个需求不会做,就是要计算两个城市之间的距离,而这两个城市的输入是可变的,如果要使用数 […]...

展开目录

目录导航