大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang

以下用C++实现插入排序的升序和降序排序

算法来自《算法导论》

#include<iostream>
using namespace std;
 
void INSERTION_SORT(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])
        {
            A[i + 1] = A[i];
            -- i;
        }
        A[i + 1] = key;
    }
}
 
int main()
{
    int b[] = {4,3,2,1};
    INSERTION_SORT(b,4);
    for(int i = 0; i < 4; ++i)
        cout << b[i] << endl;
 
    return 0;
}
----------------------------------------------------------------------------

#include<iostream>
using namespace std;
 
void INSERTION_DESCSORT(int *A, int N)
{
    for(int j = 1; j < N; ++ j)
    {
        int key = A[j];
        int i = j - 1;
        while(i >= 0 && A[i] < key)
        {
            A[i + 1] = A[i];
            -- i;
        }
        A[i + 1] = key;
    }
}
 
int main()
{
    int b[] = {1,2,3,4,5};
    INSERTION_DESCSORT(b, 5);
    for(int i = 0; i < 5; ++i)
        cout << b[i] << endl;
 
    return 0;
}
 

INSERTION_SORT插入排序C++实现的更多相关文章

  1. 【算法】插入排序 insertion_sort

    准备写个<STL 源代码剖析>的读书笔记,开个专栏.名为<STL 的实现>,将源代码整理一遍.非常喜欢侯捷先生写在封底的八个字:天下大事.必作于细.他在书中写到:"我 ...

  2. 插入排序(insertion_sort)

    最简单的排序算法,又称插值排序,原理类似于打扑克牌时把摸到的牌插入手中已有序牌的过程. void insertion_sort(int* A ,int n){ int i,j,key; ;i < ...

  3. 插入排序(insertion_sort)——Python实现

      # 插入排序 # 作用:对给出的n个顺序不定的数进行排序 # 输入:任意数组A # 输出:按顺序排列的数组A # 时间复杂度 n(n-1) 至 (n(n-1))/2   # 插入排序过程 # 第一 ...

  4. 经典排序算法 – 插入排序Insertion sort

    经典排序算法 – 插入排序Insertion sort  插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕. 插入排序方法分直接插入排序和折半插入排序两种, ...

  5. 算法导论之python实现插入排序

    插入排序的花费时间 c*n2, c 是常数 伪代码 INSERTION-SORT(A) for i  to A.length key = A[j] //Insert A[j] into the sor ...

  6. Python学习之---冒泡,选择,插入排序

    Python学习之---冒泡,选择,插入排序 最近学习了python基础,写一下3大排序练练手: 1 ''' 2 Created on 2013-8-23 3 4 @author: codegeek ...

  7. JavaScript ,Python,java,C#,Go系列算法之【插入排序篇】

    常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等.用一张图概括: 插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法. ...

  8. 《算法4》2.1 - 插入排序算法(Insertion Sort), Python实现

    排序算法列表电梯: 选择排序算法:详见 Selection Sort 插入排序算法(Insertion Sort):非常适用于小数组和部分排序好的数组,是应用比较多的算法.详见本文 插入排序算法的语言 ...

  9. 算法 排序lowB三人组 冒泡排序 选择排序 插入排序

    参考博客:基于python的七种经典排序算法   [经典排序算法][集锦]     经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一 ...

随机推荐

  1. iOS 面试题集合

      ASIDownloadCache 设置下载缓存 它对Get请求的响应数据进行缓存(被缓存的数据必需是成功的200请求): [ASIHTTPRequest setDefaultCache:[ASID ...

  2. [Android开发常见问题-18] Connection to https://dl-ssl.google.com refused

    在使用Android SDK Manager的时候,有时候会遇到上述问题,其实原因很简单,属于本地配置的问题. 解决方法: 1.以文本文件的方式打开“C:\Windows\System32\drive ...

  3. logstash 中的贪婪匹配

    logstash 中的贪婪匹配: 10.252.142.174 - - [06/Sep/2016:08:41:36 +0800] "GET /api/validate/code/send?m ...

  4. 【转】Android(4.2) Sensors 学习——G-sensor,Gyroscope驱动移植

    原文网址:http://blog.csdn.net/nxh_love/article/details/11804841 本人对驱动可谓是一点不懂,鉴于公司目前高驱动的人手不够,所以我也只能两眼一抹黑硬 ...

  5. 【转】android移植之request_suspend_state: wakeup & init: untracked pid xx exited问题的解决

    原文网址:http://blog.csdn.net/dragon101788/article/details/8187880 Bluetooth: HIDP (Human Interface Emul ...

  6. cf446C DZY Loves Fibonacci Numbers

    C. DZY Loves Fibonacci Numbers time limit per test 4 seconds memory limit per test 256 megabytes inp ...

  7. Calculate Number Of Islands And Lakes 解答

    Question 1 1 1 1 1 01 0 1 0 0 11 0 1 0 0 11 1 0 1 1 1 1 is earth, 0 is water. i) count the number of ...

  8. 特殊权限:SUID,SGID,Sticky

    特殊权限passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者:    chmod u+s FILE    chmod u-s FILE        如果FIL ...

  9. python学习之路-7 模块configparser/xml/shutil/subprocess以及面向对象初级入门

    本篇记录内容 模块 configparser xml shutil subprocess 面向对象 面向对象基础 面向对象编程和函数式编程对比 面向对象中对象和类的关系 面向对象之构造方法 面向对象之 ...

  10. Velocity知识点总结

    Velocity知识点总结 1. 变量 (1)变量的定义: #set($name = "hello") 说明:velocity中变量是弱类型的. 当使用#set 指令时,括在双引號 ...