史上最详细的C语言和Python的插入排序算法
插入排序原理:所谓插入排序,就像我们在打牌(斗地主)时,整理我们自己手中自己的牌一样,就像是2,1,3,9,J,K,5,4,这四张牌.
我们要把它其中的几张牌整理成12345这样的 然后出牌,是不是就得将这几张牌放到一起,或者是说以其中的一张牌为中心,将其他四张按大小进行插入。

 未经同意,请勿转载!如有收货,请留一赞,不胜感激!

同时欢迎加入我们的qq交流群:326079727

话不多说上代码:
C语言:
 void insert(){
//define a array which have ten number
int init_array[]={,,,,,,,,,};
int j;
int len = sizeof(init_array)/;//获取数组实际长度
//从第二位开始比较前一位
for (int i = ; i < len; i++) {
int buffer=init_array[i];
//这里为何要定义一个buffer呢
// 因为后面要对数组元素进行后移 更改顺序 ,所以i不变,但是init_array[i]会变
j=i-;
while(j>=&&buffer>init_array[j])
//如果出现比init_array[j]还小的数值,这里就对前面排好序的数组进行后移
//大于号就是从大到小的顺序
{
init_array[j+]=init_array[j];
j--;
}
init_array[j+]=buffer;
//将buffer传给init_array[j+1],因为init_array[j]是比buffer还小的数。
// 按照从大到小的顺序,所以buffer要放到init_array[j+1]后面。 }
for (int k = ; k < len; ++k) {
printf("%d\n",init_array[k]);
}
}

Python:

def insert():
init_array=[2,3,5,1,22,99,44,6,7]
for i in range(1,len(init_array)):
j=i-1
buffer = init_array[i]#这个buffer很重要,这里为何要定义一个buffer呢因为后面要对数组元素进行后移 更改顺序 ,所以i不变,但是init_array[i]会变
while(j >= 0 and buffer > init_array[j]):#这里也要用buffer进行比较,原因相同
init_array[j+1] = init_array[j]
j = j-1
init_array[j+1] = buffer
print(init_array)
insert()
借此图片 如有侵权 联系本人删除

史上最详细的C语言和Python的插入排序算法的更多相关文章

  1. 史上最详细的C语言和Python的选择排序算法

    未经同意,请勿转载!如有收货,请留一赞,不胜感激! 同时欢迎加入我们的qq交流群:326079727 话不多说上代码: C语言: //选择排序走起 //原理:吃透原理再去实现,选择排序也是类似于冒泡排 ...

  2. 史上最详细“截图”搭建Hexo博客并部署到Github

    http://jingyan.baidu.com/article/d8072ac47aca0fec95cefd2d.html 大家也搭建过博客,很多时候,按着教程来做就可以了,但是我当时为了搭建Hex ...

  3. 史上最详细“截图”搭建Hexo博客——For Windows

    http://angelen.me/2015/01/23/2015-01-23-%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86%E2%80%9C%E6%88 ...

  4. 史上最详细Windows版本搭建安装React Native环境配置 转载,比官网的靠谱亲测可用

    史上最详细Windows版本搭建安装React Native环境配置   2016/01/29 |  React Native技术文章 |  Sky丶清|  95条评论 |  33530 views ...

  5. 史上最详细的Android Studio系列教程一--下载和安装

    链接地址:http://segmentfault.com/a/1190000002401964#articleHeader4 原文链接:http://stormzhang.com/devtools/2 ...

  6. 测试思想-测试设计 史上最详细测试用例设计实践总结 Part2

    史上最详细测试用例设计实践总结 by:授客 QQ:1033553122 -------------------------接 Part1-------------------------- 方法:这里 ...

  7. 转 史上最详细的Hadoop环境搭建

    GitChat 作者:鸣宇淳 原文:史上最详细的Hadoop环境搭建 关注公众号:GitChat 技术杂谈,一本正经的讲技术 [不要错过文末活动哦] 前言 Hadoop在大数据技术体系中的地位至关重要 ...

  8. 史上最详细的XGBoost实战

    史上最详细的XGBoost实战 0. 环境介绍 Python 版 本: 3.6.2 操作系统 : Windows 集成开发环境: PyCharm 1. 安装Python环境 安装Python 首先,我 ...

  9. 史上最详细mac安装Qt教程

    史上最详细mac安装Qt教程,小白看过来! 这是一篇非常适合Qt入门小白的的安装Qt教程,因为这学期我们小组的一个关于高速救援的项目要用到Qt与web进行交互式展现相关的图像,由于没有MSVC这个插件 ...

随机推荐

  1. 《java编程思想》P140-P160(第七章复部+第八章部分)

    1.不用修饰符 修饰的方法或类,它们的修饰符是 默认修饰符,即 包访问权限(包内都可以用)(临时记的) 2. final数据: 对于基本类型,final使数值恒定不变,而对于对象引用,final使引用 ...

  2. Flask中的CBV以及正则表达式

    Flask中的CBV以及正则表达式 一.CBV def auth(func): def inner(*args, **kwargs): print('before') result = func(*a ...

  3. python selenium下拉框定位

    一.前言 总结一下python+selenium select下拉选择框定位处理的两种方式,以备后续使用时查询: 二.直接定位(XPath) 使用Firebug找到需要定位到的元素,直接右键复制XPa ...

  4. 从实践角度重新理解BIO和NIO

    前言 这段时间自己在看一些Java中BIO和NIO之类的东西,看了很多博客,发现各种关于NIO的概念说的天花乱坠头头是道,可以说是非常的完整,但是整个看下来之后,自己对NIO还是一知半解的状态,所以这 ...

  5. Python eval() exec()

    eval(str) 函数:将字符串 str 当成有效的表达式来求值并返回计算结果常见作用:1,计算字符串中有效的表达式,并返回结果In [55]: eval('pow(10,2)') # 函数Out[ ...

  6. vue 页面滚动到原位置

    哈哈哈,昨天登QQ的时候,意外发现有人看了我写的博客,居然还加了我,这就激起了我内心的小波澜啊 公司最近在做电商,用的前端框架依然是VUE 矩MAX(微信公众号)可以搜的到哦,安卓商店或苹果AppSt ...

  7. MyCat教程五:实现分库分表

      本文我们来介绍下MyCat的分库分表操作 分库分表 一.分片规则介绍   在rule.xml中定义了各种myCat支持的分片规则. 取模mod-long 自然月分片 sharding-by-mon ...

  8. java学习3-流程控制与数组

    1.顺序结构 2.分支结构 3.循环结构 4.控制循环结构 break continue return 5.数组

  9. LeetCode108——Convert Sorted Array to Binary Search Tree

    题目: Given an array where elements are sorted in ascending order, convert it to a height balanced BST ...

  10. 告别10kb/s的Github访问速度

    由于种种原因,国内访问Github的体验一直不是很好.本文通过优化DNS缓存的方式,避免浏览器直接解析Github域名,来改善Github的访问速度. 本文分为如下三个部分: 通过IP地址查询获取访问 ...