温故之 “插入排序”

概念:将一个数据插入已经排好序的有序数组中,从而得到一个新的多一个数据的有序数组。

概念理解~~

将要排序的是一个乱的数组int[] arrays = {3, 2, 1, 3, 3};
在未知道数组元素的情况下,我们只能把数组的第一个元素作为已经排好序的有序数据,也就是说,把{3}看成是已经排好序的有序数据

  • 第一趟排序:
    用数组的第二个数与第一个数(看成是已有序的数组)比较
  1. 如果比第一个数大就不用管
  2. 如果比第一个数小,将第一个数往后退一步,将第二个数插入第一个数去
  • 第二趟排序:
    用数组的第三个数与已是有序的数组{2,3}(刚才在第一趟排出来的结果)比较
  1. 如果比第二个数字大就不用管
  2. 如果比第二个数字小,就跟第一个数比较,如果比第一个数大,那么将第三个数字插入第二个位置,如果比第一个数字小,那么第一位数将后退一步,将第三个数插入第一位
  • 以此类推排序完整个数组

    转换成代码前的简单理解
    1 假定第一个元素是最小值,
    2 从第二个元素开始,往该元素前面的序列比较,
    3 如果后一个元素比前一个元素小,则交换位置

    function insersort (arr) {for(var i=1;i<arr.length-1; i++) { // 从第二个数开始取for(var j=i; j>0; j--) {  // 依次和前面的数做比较if(arr[j]<arr[j-1]) {var k = arr[j];arr[j] =arr[j-1];arr[j-1] = k;}}}return arr;}

转载于:https://www.cnblogs.com/whkl-m/p/10670434.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验二3

#include "stdafx.h" #include "stdio.h" int main(int argc, char* argv[]) {int a,b,c; scanf("%d %d %d",&a,&b,&c);if(ab&&bc) printf("等边三角形");else if((ab&&b!c)||(ac&&c!b)||(bc&a…

webpack来打包你的vue项目,如发现你的vendor.js过大

1.如果你使用了webpack来打包你的vue项目&#xff0c;如发现你的vendor.js过大则可以参考本文的解决方案. 2.造成过大的原因是因为在main.js导入第三库太多时,webpack合并js时生成了vendor.js(我们习惯把第三方库放在vendor里面)造成的.如下图在main.js引用element-ui等第三方…

TF01 简介

总览 如何从实体中提取特征&#xff0c;对于很多传统机器学习算法的性能有巨大影响。 一旦解决了数据表达和特征提取&#xff0c;很多人工智能任务也就解决了90%。 对许多机器学习算法来说&#xff0c;特征提取不是一件简单的事情。 深度学习解决的核心问题之一就是自动的将简…

K8s基本概念入门

序言 没等到风来&#xff0c;绵绵小雨&#xff0c;所以写个随笔&#xff0c;聊聊k8s的基本概念。 k8s是一个编排容器的工具&#xff0c;其实也是管理应用的全生命周期的一个工具&#xff0c;从创建应用&#xff0c;应用的部署&#xff0c;应用提供服务&#xff0c;扩容缩容应用…

idea出现找不到实体类

今天经理遇到一个很奇怪的问题&#xff1a; 在使用idea时&#xff0c;就是包真实存在&#xff0c;但是包中的实体类却无法智能提示&#xff0c;也无法导入成功&#xff1b; 我推荐的解决办法是重新导入&#xff0c;但是没有用&#xff0c;经理在网上找了很多解决方式&#xff0…

TF02 入门

计算模型——图 数据模型——张量 运行模型——会话 TensorFlow计算模型——计算图 计算图是TF中最基本的一个概念&#xff0c;TF中的所有计算都会被转化为计算图上的结点。 TF是一个通过计算图的形式来表述计算的编程系统。TF中的每一个计算都是计算图上的一个节点&#x…

ElasticSearch、Logstash和Kiabana三个开源工具。

一 方案背景 通常&#xff0c;日志被分散的储存不同的设备上。如果你管理数十上百台服务器&#xff0c;你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。开源实时日志分析ELK平台能够完美的解决日志收集和日志检索、分析的问题&#xff0c;ELK…

「一本通 6.4 例 4」曹冲养猪(CRT)

复习一下 扩展中国剩余定理 首先考虑两个同余方程\[ x \equiv a_1\; mod\; m_1\\ x \equiv a_2\; mod\; m_2 \]化成另一个形式\[ x n_1 * m_1 a_1\\ x n_2 * m_2 a_2 \] 联立可得\[ n_1 * m_1 a_1 n_2 * m_2 a_2\\ n_1 * m_1 - n_2 * m_2 a_2 - a_1 \]有解的前提是\[ \…

06 MapReduce工作机制

MapReduce作业的执行流程 1、提交作業 在提交JobConf對象之後&#xff0c;用戶程序調用JobClient的runJob方法。 runJob方法會先行調用JobSubmissionProtocol接口所定義的submitJob方法&#xff0c;並將作業提交給JobTracker。 緊接着&#xff0c;runJob不斷循環&#xff0…

solr elasticsearch比较

solr&#xff1a; 优点 1、Solr有一个更大、更成熟的用户、开发和贡献者社区。 2、支持添加多种格式的索引&#xff0c;如&#xff1a;HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式。 3、Solr比较成熟、稳定。 4、不考虑建索引的同时进行搜索&#xf…

力扣(LeetCode)292. Nim游戏 巴什博奕

你和你的朋友&#xff0c;两个人一起玩 Nim游戏&#xff1a;桌子上有一堆石头&#xff0c;每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。 你们是聪明人&#xff0c;每一步都是最优解。 编写一个函数&#xff0c;来判断你是否可以在给定石头数…

Spring Cloud应用监控与管理Actuator

由于我们把一个复杂高耦合的单体系统拆分成了多个小型服务&#xff0c;所以部署应用的数量在不断增长&#xff0c;造成维护复杂度大大提升。所以我们需要一套自动化的监控运维机制&#xff0c;这套运维机制可以不间断的获取每个服务应用的各种指标&#xff0c;并根据这些指标信…

2019.04.09 电商25 结算功能1

结算功能要获取很多数据&#xff0c; 现在的主要问题是要知道获取对应的商品信息&#xff0c;要知道我选的是哪个的商品信息啊 它们选框的类名都一样啊&#xff0c;能遍历吗&#xff1f;遍历之后要去获取&#xff0c;它父级属性的值 有多少商品就有多少复选框&#xff0c;可以获…

性能堆分析思路

1、通过top找到对应的耗费资源比较大的进程ID&#xff0c; 2、ps p 进程ID -L -o pcpu,pid,tid,time,tname,cmd 3、然后利用上面面命令来找到对应的线程 4、利用Listthread方法 列出所有线程&#xff0c;与找到对应资源比较大的匹配 5、利用stack查找到对应的堆栈调用代码&…

第十二届湖南省赛 (B - 有向无环图 )(拓扑排序+思维)好题

Bobo 有一个 n 个点&#xff0c;m 条边的有向无环图&#xff08;即对于任意点 v&#xff0c;不存在从点 v 开始、点 v 结束的路径&#xff09;。为了方便&#xff0c;点用 1,2,…,n 编号。 设 count(x,y) 表示点 x 到点 y 不同的路径数量&#xff08;规定 count(x,x)0&#xff…

GC 调优(实战篇) - GC参考手册

说明: Allocation Rate, 翻译为分配速率, 而不是分配率; 因为不是百分比,而是单位时间内分配的量; 同理, Promotion Rate 翻译为 提升速率; 您应该已经阅读了前面的章节: 垃圾收集简介 - GC参考手册Java中的垃圾收集 - GC参考手册GC 算法(基础篇) - GC参考手册GC 算法(实现篇)…