C++11写算法之插入排序】的更多相关文章

  插入排序,是指将从1 –> size-1的数一个个插入到前面已经排序好的数组中. 时间复杂度:O(n^2) , O(nlgn) (lgn指使用二分查找插入点位置) 空间复杂度:O(1) // #if __cplusplus < 201103L // #error "must be compiled under c++11 support platform!!!" // #endif #include <iostream> #include <algor…
从这篇博文起,将尝试使用C++11来写常用算法与数据结构. 本篇博文以最简单的顺序查找作为系列博文的起点,并作约定如下: 1,变量名 : varList : 函数名 : SequentialFind ; 2,尽量描写算法本身,因而均不含模板,数据类型均为int: 3,所有代码均在同一个cpp中: 4,代码均在 vs2013 与 g++ 4.8.2 中编译通过: 5,g++编译命令:g++ -std=c++11 sequential_find.cpp . 顺序查找没什么好说的,这里主要看看C++1…
同样的,二分查找很好理解,不多做解释,要注意二分查找的list必须是排好序的. 这里实现了两种二分查找的算法,一种递归一种非递归,看看代码应该差不多是秒懂.想试验两种算法,改变一下findFunc函数指针(auto findFunc = RecursionBinaryFind; //BinaryFind )即可. 时间复杂度:O(lgn) 空间复杂度:O(1) 除了顺序查找和二分查找,还有一些需要借助某些数据结构才能进行查找的算法,例如:分块查找,二叉排序树查找,哈希查找,B树/B+树/B*树查…
选择排序,顾名思义,指从数组后面将最小的值找出来,然后与最前面(指当前位置)值进行交换. 时间复杂度:O(n^2) 空间复杂度:O(1) 此处应用了C++11的auto , lambda , static_assert . show me the code ! // #if __cplusplus < 201103L // #error "must be compiled under c++11 support platform!!!" // #endif #include &l…
冒泡排序很形象,指从数组后面将更小的值慢慢浮到前面去,每遍历一趟使得最小值浮到最前面(指当前位置). 这里有点小技巧,当某一次遍历过程中发现无交换,则说明此时数组已经排序完成,可提前退出. 时间复杂度:O(n^2) 空间复杂度:O(1) 此处应用了C++11的auto , lambda , static_assert . show me the code ! // #if __cplusplus < 201103L // #error "must be compiled under c++…
每次开始动手写算法,都是先把插入排序,冒泡排序写一遍,十次有九次是重复的,所以这次下定决心,将所有常规的排序算法写了一遍,以便日后熟悉. 以下代码总用一个main函数和一个自定义的CommonFunction函数 CommonFunction函数中定义了一个交换函数和一个输出函数: /* * CommonFunction.h * * Created on: 2015年11月16日 * Author: hoojjack */ #pragma once namespace section4 { vo…
准备写个<STL 源代码剖析>的读书笔记,开个专栏.名为<STL 的实现>,将源代码整理一遍.非常喜欢侯捷先生写在封底的八个字:天下大事.必作于细.他在书中写到:"我开玩笑地对朋友说,这本书出版,给大学课程中的「数据结构」和「算法」两门授课老师出了个难题.差点儿全部可能的作业题目(复杂度证明题除外),本书都有了详尽的解答. 然而,假设学生可以从庞大的SGI STL源代码中干净抽出某一部份,加上自己的包装,做为呈堂作业,也足以证明你有资格获得学分和高分.其实.追踪一流作品并…
原文:一步一步写算法(之挑选最大的n个数) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 从一堆数据中挑选n个最大的数,这个问题是网上流传的比较广的几个问题之一.具体来说,它的意思就是:假设我们有100个数据,我们需要挑选出最大的n个数据(n < 100),那么有没有办法实现这样一个目标呢?在这里,我想从排序的角度看看有没有什么办法可以实现这样一个目标. 在前面的博客当中,我们实现的排序算法有下面几种: (1) 冒泡排序.插入排序.希尔…
m_Orchestrate learning system---二十一.怎样写算法比较轻松 一.总结 一句话总结:(1.写出算法步骤,这样非常有利于理清思路,这样就非常简单了 2.把问题分细,小问题用函数弄出来) 1.学生端文章列表的格式是怎样的? 普通文章列表 这些样式的整体格式都是ul包li的形式 1.普通文章列表 就是一个am-list的经典样式:用了很多am-list的样式 1 <ul class="am-list"> //1.外层的ul是包裹整个list的,用的是…
众所周知,使用arcgis api for js实现地图的量算工具功能,无非是调用arcgisserver的Geometry服务(http://localhost:6080/arcgis/rest/services/Utilities/Geometry/GeometryServer)提供的Areas and Lengths以及Lengths,如图: 但是我这里提供另一种实现的思路,就是自己写算法来实现距离以及面积的量算,这样的好处是不依赖arcgisserver几何服务,有些项目不排除有些奇特的…