直接插入排序将数字从小到大排序

java实现直接插入排序 java实现直接插入排序 一、排序思想 我们假定排序是有小到大排列。直接插入排序的基本思想是:在一个已排好的记录子集的基础上,每一步将下一个待排序的记录有序的插入到已排好的记录子集当中,直接将所有待排记录全部插入位置 例如: 已知待排序的一组记录的初始排列为:{49,38,65,49,76,13,27,52} 假设在排序过程中,前三个记录按关键字递增的次序重新排列,构成了一个含有三个记录的有序序列: {38,49,65} 现在要将第四个记录49插入到上述序列,得到的有序序列: {38,**49,**49,4 阅读详情
#include<iostream>
using namespace std;
void InsertSort(int a[], int n)
{
    for (int j = 1; j < n; j++)
    {
        cout << a[j];
        int key = a[j]; //待排序第一个元素
        int i = j - 1;  //代表已经排过序的元素最后一个索引数
        while (i >= 0 && key < a[i])
        {
            //从后向前逐个比较已经排序过数组,如果比它小,则把后者用前者代替,
            //其实说白了就是数组逐个后移动一位,为找到合适的位置时候便于Key的插入
            a[i + 1] = a[i];
            i--;
        }
        a[i + 1] = key;//找到合适的位置了,赋值,在i索引的后面设置key值。
    }
}
void main() {
    int d[] = { 12, 15, 9, 20, 6, 31, 24 };
    cout << "输入数组  { 12, 15, 9, 20, 6, 31, 24 } " << endl;
    InsertSort(d, 7);
    cout << "排序后结果:";
    for (int i = 0; i < 7; i++)
    {
        cout << d[i] << " ";
    }

}

在这里插入图片描述
这组代码要对七个数据进行排序,首先设置key,可以理解为监视哨
从15开始,一直到24
如果说监视哨的值小于前一个数的值
比如15和12比较,15大于12,不满足while的条件,那就不调换位置
12在前,15在后
监视哨为9的时候,9和15比较,9小于15,满足while的条件,9和15调换位置,接下来9和12进行比较,9小于12,然后9和12再掉换位置。
以此类推,我们就能完成从前到后的排序

ESP-CSI:使用ESP32进行CSI(信道状态信息)采集 使用esp32进行csi(信道状态信息)采集和处理 阅读详情

相关推荐

ThinkPHP 8.1 + think-swoole 4.1 实战:5分钟搞定WebSocket聊天室(附完整代码)

本文详细介绍了如何使用ThinkPHP 8.1和think-swoole 4.1快速构建高并发WebSocket聊天室。通过5分钟实战教程,开发者可以轻松实现用户列表、消息广播等核心功能,支持2000+并发连接,适用于客服系统、在线协作等实时通信场景。

ol789012345的博客 126

排序:直接插入排序(由大到小排序)

直接插入排序是一种最简单的排序方法,其基本操作是将需要排序的元素插入到已排好的有序表序列中,从而得到一个完整的有序序列。最坏情况全部反序,内层每次遍历已排序部分,最坏时间复杂度为O ( n 2 ) O(n^2)O(n。最好情况就是全部有序,此时只需遍历一次,最好的时间复杂度为O ( n ) O(n)O(n)综上,因此直接插入排序的平均时间复杂度为O ( n 2 ) O(n^2)O(n。注意:初始的侯有序区中的元素为第一个元素,其他元素为无序区中的元素。平均的空间复杂度为:O ( 1 ) O(1)O(1)

weixin_63381305的博客 1620

墨刀原型设计工具操作使用指南及实践操作

该指南通过异常场景处理、像素级参数说明、复杂交互示例,覆盖了墨刀操作的全细节,适合从新手到资深用户的进阶学习。结合 PlantUML 思维导图的层级化展示,可快速定位具体功能的操作要点与问题解决方法,真正实现 “照指南即可操作” 的实用价值。

hy行者勇哥的博客 4956

C语言利用直接插入排序算法,将顺序表L中的元素从小到大进行排序

直接插入排序的原理是每次将待排序的数据插入到已经排好序的序列中,从而得到一个新的、个数加一的有序序列。具体实现方法如下: 首先,将第一个元素看作是已经排好序的序列,然后从第二个元素开始,依次将每个元素插入到已经排好序的序列中,直到最后一个元素。 C语言代码如下: void direct_insert_sort(int L[], int n) { int i, j; for (i =...

weixin_35755188的博客 1557

【GPIO模拟串口通信协议】

由于这段时间搞了个安卓相关的项目,需要和安卓进行Uart通信。但是选用的芯片并没有自带uart功能,所以在充分评估项目后,考虑波特率不高的情况下,决定使用GPIO去模拟串口通信协议了。

学海无涯苦作舟 2638

UQLab——其他概率分布随机变量转换标准Gaussian分布

1、使用UQLab将其他类型的随机变量转换成标准Gaussian分布; 2、使用科学计数法输出样本,方便后续ANSYS的调用分析; 3、基于MC的可靠度分析。 原随机变量分布类型: % 调用UQLab进行采样 clc clear uqlab %% Specify these distributions as a UQLab INPUT object: PriorOpts.Marginals(1...

ikhui7的博客 3014

排序之直接插入排序(Straight Insertion Sort)

直接插入排序(Straight Insertion Sort)的基本思想:    依次从无序表中取出一个元素,将其插入有序表的合适位置,从而使得有序表依然有序,长度加1,重复操作直至全部记录完成插入为止; 算法操作: 设数组为data[0 , 1 , 2 , ......n - 1]:            1) 初始时, 将data[0]设置为有序区, data[1 , 2 , ....

dangzhileiqaz的专栏 762

告别死记硬背!用实际案例带你玩转UE5编辑器界面(附场景搭建练习)

本文通过实际案例教学,带你轻松掌握Unreal Engine5编辑器界面的核心功能。从创建基础场景到添加光源和可交互对象,逐步讲解内容浏览器、模式面板、世界大纲等模块的协同工作方式,告别死记硬背的学习模式。附场景搭建练习,助你快速上手UE5开发。

weixin_30566063的博客 731

常见排序算法——插入排序

基本思想:每一步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的,元素直到插入全部完为止。 【直接插入排序】 当插入第i(i&amp;amp;amp;gt;=1)个元素时,前面的array[0],array[1],…,array[i-1]已经 排好序,此时用array[i]的排序码与array[i-1],array[i-2],…的排序码顺序 进行比较,找到插入位置即将array[i]插入,原来位置上的...

summer初夏的博客 274

光学防抖OIS介绍与标定

前言:先看一下有无ois系统的效果。 1. OIS系统的作用就是消除镜头的抖动。 Gyro感受方向,Hall感受位移,Actuator驱动马达来矫正抖动方向和位移。 2.ois系统的结构构成 从上面来看ois系统主要有Hall,...

camerall 1万+

C#上位机开发入门:从基础到进阶的全方位指南

C#作为一门现代化编程语言,具备强大的功能和广泛的生态支持,适合用于开发各种类型的上位机应用。通过学习并掌握UI开发、通信协议、多线程编程、数据库操作等技能,你可以打造出稳定、易用、性能优异的上位机软件。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 8317

数组插入排序算法 从大到小

/** * 数组插入排序算法 * 从大到小 * @param args * @return */ public static int[] insertSort(int[] args){ for(int i=1;i&lt;args.length;i++){ for(int j=i;j&gt;0;j--){ ...

tiger_Angle 2385

【制作100个unity游戏之30】使用unity实现一款2d俯视角RPG战斗游戏,主要使用InputSystem+有限状态机+A*寻路实现(完结,附带项目源码)

【制作100个unity游戏之30】使用unity实现一款2d俯视角RPG战斗游戏,主要使用InputSystem+有限状态机+A*寻路实现

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4657

插入排序

C语言直接插入排序算法 插入排序是把一个记录插入到已排序的有序序列中,使整个序列在插入该记录后仍然有序。插入排序中较简单的种方法是直接插入排序,其插入位置的确定方法是将待插入的记录与有序区中的各记录自右向左依次比较其关键字值的大小。本实例要求使用直接插入排序法将数字由小到大进行排序。 实现过程: (1) 自定义一个函数,实现直接插入排序,在本实例中,我们自定义该函数为 insort()。 (2...

weixin_44141899的博客 321

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

直接插入排序(JAVA)

直接插入排序(JAVA)

qq_62911298的博客 404

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【C语言经典实例】-直接插入排序

插入排序法是把一个数插入到已排序的的有序序列中,使整个序列在插入该数后仍然有序。插入排序中教简单的一种方法是直接插入排序,其插入的位置确定方法是将待插入的数与有序区中的各个数自右向左依次比较其值的大小。本实例实现的功能是用直接插入法将数字由小到大进行排序。代码如下: #include #include void insort(int s[],int n) { int i,j; for(

Liangqi0329的博客 1467

C语言 直接插入排序

C语言 直接插入排序

伍竹碳的博客 291

输入处理(5为空格)+插入排序

输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。 你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。 Input 输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。 输入数据保证:...

weixin_44373494的博客 459

排序算法(三)直接插入排序

1、 2、 3、 4、 5、 6、

wwkaven的专栏 955

链表 直接插入排序法

题目:输入 10 个已经从小到大排列好的数字,并用链表存储,再输入一个数,将其插入到 10 个数之间,使得新序列仍然满足从小到大的排序。(必须用链表) #include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct Node//定义结点 { int data; struct Nod...

weixin_44899829的博客 626

[排序算法2] - 直接插入排序

包括:直接插入排序,二分插入排序(又称折半插入排序),链表插入排序,希尔排序(又称缩小增量排序)。属于稳定排序的一种(通俗地讲,就是两个相等的数不会交换位置) 。   基本思想:   将n个元素的数列分为已有序和无序两个部分,如下所示: {{a1},{a2,a3,a4,…,an}} {{a1⑴,a2⑴},{a3⑴,a4⑴ …,an⑴}} … {{a1(n-1),a2(n-1) ,…

在路上。。。 425

Python排序算法之直接插入排序

插入排序的主要思想是每次取一个列表元素与列表中已经排序好的列表段进行比较,然后插入从而得到新的排序好的列表段,最终获得排序好的列表。 比如,待排序列表为[49,38,65,97,76,13,27,49],则比较的步骤和得到的新列表如下: (带有背景颜色的列表段是已经排序好的,红色背景标记的是执行插入并且进行过交换的元素) 时间复杂度:O(n^2) 待排序:    [49,38,65...

weixin_30835923的博客 75

排序算法 —— 直接插入排序(图文超详细)

java 实现七大排序算法中的直接插入排序

超烦豆先森 1万+

直接插入排序和希尔排序

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。数据元素全部放在内存中的排序。数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。

Giggins GaoBlog 2106

直接插入排序(C++实现)

直接插入排序的工作过程就是不断地从左到右在已经排好序的序列中寻找下一个待排序元素的位置,然后插入这个元素。

Edison's 小宇宙 2万+

常见排序算法之插入排序——直接插入排序、希尔排序

哈喽大家好,我是保护小周,本期为大家带来的是常见排序算法中的插入排序,主要有直接插入排序以及它的升级版——希尔排序,包您一看就会,快来试试吧~

保护小周ღ的博客 2749

C语言:直接插入排序

直接插入排序 直接插入排序是插入排序的一种,插入排序是每次将一个待排序的序列插入到一个前面已经排好序的子序列当中。 直接插入排序的算法思想如下: (1)查找出L[i]在L[1~i-1]中的插入位置k; (2)将L[k~i-1]中所有的元素全部向后移一个位置; (3)将L[i]复制到L[k]中。 手动显示一下这个过程: 假设有一个待排序序列 : 3 6 7 2 5 1 4 趟数 哨兵 序列 1 6 3 6 7 2 5 1 4 2 7 3 6 7 2 5 1 4 3 2

jianbai_的博客 1万+
上一篇: 寻找A和B的中间位置
下一篇: 2018软考程序员下午题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值