上层在代码写多了,往往比较简单在算法都要在网络上进行搜索实现

#include<stdio.h>
int main(){int arrs[8]= {7,6,9,3,1,5,2,4};for(int i=0;i<8;i++){for(int j=i+1;j<8;j++){if(arrs[j]<arrs[i]){int temp=arrs[i];arrs[i]=arrs[j];arrs[j]=temp;    }   }   }printf("排序之后:");for(int i=0;i<8;i++){printf("%d,",arrs[i]);}
}

插入排序 这个名字和代码实现总是感觉格格不入

总感觉自己在遍历每个元素

简单点理解:

[a,b,c,d,e,f,g,h,j,....................]

第一轮的循环是a后面的数据都和a 进行大小,如果小于a 则和a替换位置,经过一轮的第一轮的计算,其实是把其中最小的元素找到了

第二轮的循环是b 之后所有的数据都和b进行比较大小,.........

第三轮循环是c 之后的数据都和c 比较大小

....

那么数组中有多少元素,就要进行几轮循环

如果长度为len 那么要进行len次循环

每次循环比较的次数也是不同的

第一次循环 比较是 len-1 次

第二次循环 比较是 len-2次

....

第len次循环是 1次

那么一共比较了多少次

total=(len-1)+(len-2)+(len-3)+.......+ 2+1

这样看有点乱,我们反过来看:

total=1+2+3+..........+(len-3)+(len-2)+(len-1)==

我们看一个一个说的数量级都是按照最高次数来看,所以计算量为 O()

可见该算法如果数组长度比较长 ,计算量非常的大的

希望对你有所帮助

算法结构1.插入排序相关推荐

  1. 算法结构2.希尔排序

    希尔是一个人的名字,因为他在论文中首次提到了这样的排序方式,这是希尔排序的来源 希尔排序,比插入排序有更加的优化, 有很多的文章中说希尔排序中也用到了插入排序,这样的说法只是为了方便理解,其实是不正确 ...

  2. [4] 算法之路 - 插入排序之Shell间隔与Sedgewick间隔

    题目 插入排序法由未排序的后半部前端取出一个值.插入已排序前半部的适当位置.概念简单但速度不快. 排序要加快的基本原则之中的一个: 是让后一次的排序进行时,尽量利用前一次排序后的结果,以加快排序的速度 ...

  3. 我的Java开发学习之旅------Java经典排序算法之二分插入排序

    一.折半插入排序(二分插入排序) 将直接插入排序中寻找A[i]的插入位置的方法改为采用折半比较,即可得到折半插入排序算法.在处理A[i]时,A[0]--A[i-1]已经按关键码值排好序.所谓折半比较, ...

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

    文章目录 简介 插入排序的例子 插入排序的java程序 插入排序的时间复杂度 简介 插入排序就是将要排序的元素插入到已经排序的数组中,从而形成一个新的排好序的数组. 这个算法就叫做插入排序. 插入排序 ...

  5. C++primer第十章 泛型算法 10.4 再探迭代器 10.5 泛型算法结构

    除了为每个容器定义的迭代器之外,标准库在头文件iterator中还定义了额外几种迭代器.这些迭代器包括以下几种. 插入迭代器(insert iterator):这些迭代器被绑定到一个容器上,可用来向容 ...

  6. 排序算法:直接插入排序算法实现及分析

    直接插入排序算法介绍 还是先过一遍定义.直接插入排序(Straight Insertion Sort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的.记录数增1的有序表.来我们用通 ...

  7. php代码编写直接插入排序算法,PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析...

    本文实例讲述了PHP排序算法之直接插入排序(Straight Insertion Sort).分享给大家供大家参考,具体如下: 算法引入: 在这里我们依然使用<大话数据结构>里面的一个例子 ...

  8. 插入排序 php,PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析

    本文实例讲述了PHP排序算法之直接插入排序(Straight Insertion Sort).分享给大家供大家参考,具体如下: 算法引入: 在这里我们依然使用<大话数据结构>里面的一个例子 ...

  9. 插入排序java_排序算法之直接插入排序Java实现

    排序算法之直接插入排序 舞蹈演示排序: 冒泡排序: http://t.cn/hrf58M 希尔排序:http://t.cn/hrosvb 选择排序:http://t.cn/hros6e 插入排序:ht ...

最新文章

  1. R语言gganimate包创建可视化gif动图、可视化动图:创建动态散点图动画基于transition_time函数、使用shadow_wake函数配置动画的渐变效果(gradual falloff)
  2. H5学习之旅-H5的样式(5)
  3. windows cmd 窗口 显示信息慢_你玩过Windows 10新版CMD了吗?
  4. 第十三章 Perl的面向对象编程
  5. 使用栈来完成一个表达式的结果
  6. No result defined for action com.lk.IndexAction and result success
  7. Fatal error LNK1168: cannot open *.exe file for writing
  8. Android内存优化11 内存泄漏常见情况2 线程持久化
  9. Python实现简单的人脸打卡系统
  10. [HDOJ5734]Acperience(数学,公式推导)
  11. oracle数据库简单的学多久,讲讲新人的oracle数据库学习
  12. 公司收银系统要不要服务器,一套收银系统要多少成本
  13. 关于如何修复任务栏图标变白色的问题
  14. Python学习笔记之循环的实战练习
  15. Bailian-1的个数
  16. Android Studio开发:简单的登录注册界面
  17. ADASISv3简述,自动驾驶怎么进行地图数据传输?
  18. python 操作redis集群
  19. 浅谈学习编程语言的心得与体会
  20. android tv 云播放器,Android TV开发总结(六)构建一个TV app的直播节目实例

热门文章

  1. Spring 的@Scheduled注解实现定时任务运行和调度
  2. 冲出UAC-解决Win UAC问题的编程经验
  3. nagios+mysql+ndo2安装总结
  4. 千亿级携程酒店AWS实践
  5. 复杂多变场景下的Groovy脚本引擎实战
  6. 亿级流量架构之分布式事务思路及方法
  7. 某程序员哀叹:连续帮三任女朋友进360,京东等互联网大厂,进去后却都惨遭分手!...
  8. 还在使用Future轮询获取结果吗?CompletionService快来了解下。
  9. 遇到网络问题你是怎么解决的?安琪拉有二招
  10. String性能提升10倍的几个方法!(源码+原理分析)