首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • C++ 插入排序

    以下 gif 参考https://blog.csdn.net/L_PPP/article/details/108498581: 第一次遍历效果:

    12410编辑于 2026-01-23
  • C++ 折半插入排序

    总结归纳 折半插入排序是直接插入排序的优化,查找待插入元素的位置时使用折半查找。 折半插入排序仅减少了比较次数,并未改变移动次数, 。 折半插入排序是一种稳定的排序算法。 代码实现 /* 折半插入排序 */ #include <iostream> #include <time.h> using namespace std; typedef int ElemType; // 折半插入排序 void InsertSort(ElemType A[], int len) { int i, j, low, high, mid; for (i = 2; i

    15310编辑于 2026-01-23
  • 来自专栏英雄爱吃土豆片

    排序技术:插入排序C++实现)

    insertSort(int arr[], int length) { //传入的数组的第一个位置为哨岗 for (int i = 2; i < length; i++) { //对数组中的每一个元素进行插入排序 //即为当前进行插入的元素在数组中的位置 //哨兵已经记录下了这个元素,此时相当于一个空位 //此时进行插入的元素的值小于已经插入的最后元素时才会进入循环 //否则代表不用进行插入排序

    84330发布于 2020-11-12
  • 来自专栏刷题笔记

    7-4 悄悄关注 (25 分)

    本文链接:https://blog.csdn.net/shiliang97/article/details/97864803 7-4 悄悄关注 (25 分) 新浪微博上有个“悄悄关注”,一个用户悄悄关注的人

    1.1K10发布于 2019-11-08
  • 来自专栏Python编程 pyqt matplotlib

    C++ 插入排序,冒泡排序和选择排序

    大学的时候学过C,现在已经忘得七七八八了,现在想再学一下C/C++。 刚试着重写/温习了3个最简单的排序算法。 插入排序:依次将右边未排序的元素插入到左边已排序序列的合适位置。 float* sort_insertion(float a[], int len_a) { /*插入排序 类似我们排序扑克牌*/ for(int i=1; i < len_a; i++)

    1.5K20发布于 2020-02-19
  • 来自专栏刷题笔记

    7-4 字符串排序

    点这里 7-4 字符串排序 本题要求编写程序,读入5个字符串,按由小到大的顺序输出。 输入格式: 输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。 还是有些小技巧滴: 1.空格间隔,直接用cin输入就行,用个while(cin>>s){}一直循环读下去,岂不是美滋滋 2.排序c++可以直接比较,那就if(s[a]>s[a+1]){}比较就完事了

    90010发布于 2019-11-08
  • 来自专栏刷题笔记

    7-4 树的遍历 (20 分)

    本文链接:https://blog.csdn.net/shiliang97/article/details/102924283 7-4 树的遍历 (20 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列

    72910发布于 2019-11-07
  • 来自专栏刷题笔记

    7-4 括号匹配 (25 分)

    本文链接:https://blog.csdn.net/shiliang97/article/details/101472923 7-4 括号匹配 (25 分) 给定一串字符,不超过100个字符,可能包括括号

    97130发布于 2019-11-08
  • 来自专栏数据结构和算法

    7-4 学生成绩排序 (15分)

    7-4 学生成绩排序 (15分) 输入格式: 输入一个正整数n(n<50),下面n行输入n个学生的信息,包括:学号、姓名、三门课程成绩(整数)。

    38710编辑于 2023-11-30
  • 来自专栏cwl_Java

    C++经典算法题-Shell 排序法 - 改良的插入排序

    34.Algorithm Gossip: Shell 排序法 - 改良的插入排序 说明 插入排序法由未排序的后半部前端取出一个值,插入已排序前半部的适当位置,概念简单但速度不快。 排序要加快的基本原则之一,是让后一次的排序进行时,尽量利用前一次排序后的结果,以加快排序的速度,Shell排序法即是基于此一概念来改良插入排序法。 解法 Shell排序法最初是D.L Shell于1959所提出,假设要排序的元素有n个,则每次进行插入排序时并不是所有的元素同时进行时,而是取一段间隔。 画线连结的部份表示 要一起进行排序的部份,再来将间隔设定为5 / 2的商,也就是2,则第二次的插入排序对象如下所示: ? 再来间隔设定为2 / 2 = 1,此时就是单纯的插入排序了,由于大部份的元素都已大致排序过了, 所以最后一次的插入排序几乎没作什么排序动作了: ?

    69200发布于 2020-02-13
  • 来自专栏用户画像

    7.2.2 插入排序之折半插入排序

    从直接插入排序的过程中,都进行了两项工作: ①从前面的子表中查找出待插入元素应该被插入的位置; ②给插入位置腾出空间,将待插入元素复制到表中的插入位置。 当排序表为顺序存储的线性表时,可以对直接插入排序做如下改造: 由于是顺序存储的线性表,所以查找有序子表时可以用折半查找来实现。 在确定出待插入位置后,就可以统一地后移元素了。 //统一后移元素,空出插入位置 } A[high+1]=A[0];//插入操作 } } 折半插入排序仅仅减少了比较元素的次数 ,约为O(nlog2 N),该比较次数与待排序表的初始状态无关,仅取决于表中的元素的个数n; 而元素的移动次数没有改变,它依赖于待排序表的初始状态,因此折半插入排序的时间复杂度仍为O(n^2)。 折半插入排序是一个稳定的排序方法。

    1.1K10发布于 2018-08-24
  • 来自专栏和蔼的张星的图像处理专栏

    链表插入排序插入排序

    插入排序对链表排序 样例 Given 1->3->2->0->null, return 0->1->2->3->null 插入排序 主要是怎么找到这个插入的位置,我一开始用了一种复杂的方法,没有调对

    72220发布于 2018-09-04
  • 来自专栏hml_知识记录

    插入排序

    插入排序的基本概念 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。 插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。 插入排序的算法步骤 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。 从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。 从左到右依次与已排序的元素比较,如果已排序的元素大于新元素,那么将该元素移动到下一个位置,接着再与前面的已排序的元素比较,直到找到已排序的元素小于等于新元素的位置,这时再将新元素插入进去,就像下面这样: 插入排序的动图演示

    43610编辑于 2022-03-28
  • 来自专栏Java小白成长之路

    插入排序

    随着刷题的数量的增多,慢慢感觉到很多题目之间的内在关联,每周遇到的比较新奇的题目还是坚持与各位分享一下~ ---- 本周我们分享一道排序题目,在之前的文章中,我们讲过一次归并排序(归并排序),这次我们讲一下插入排序 插入排序 LeetCode 147 --->对链表进行插入排序【中等题】 ? 题目描述 LeetCode上面,原题就是需要我们按照插入排序的算法来完成整个排序。 当我们获取到了最后一个元素的时候,我们就完成了整体的插入排序

    54410发布于 2020-06-29
  • 来自专栏腿子代码了专栏

    插入排序

    插入排序 什么是插入排序插入排序是对冒泡排序的进一步优化,是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 更重要的是我们需要了解插入排序的定义,这更有利于我们对插入排序的了解。 构建有序序列 已排序序列中从后向前扫描 插入排序原理 arr =[78,54,85,20,63,77,9] 模拟构建有序数组和无序数组 假设将第一个数组元素当做有序数组,将其他数组元素作为无序数组。 插入排序步骤 第一轮 第一次比较,78>54,按照从小到大,纳入有序列表当中。 第二轮 第二次比较, 1.78>85,不成立,不交换位置。因为78之前是有序数列,所以这一轮也是在意义上结束了。 虽然在意义上结束了,但是计算机仍没有停止排序,这就是插入排序的一个缺点。 2.54>78,不成立。不交换位置。 第三轮 第三次比较。

    47020编辑于 2023-10-08
  • 来自专栏Lixj's Blog

    插入排序

    插入排序 插入排序的思路: 从第一个元素开始,该元素可以认为已经被排序; 取出下一个元素,在前面已排序的元素序列中,从后向前扫描; 如果该元素(已排序)大于新元素,将该元素移到下一位置; 重复步骤3, a[i] + ","); } } } Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/插入排序

    45030编辑于 2022-06-10
  • 来自专栏江涛的博客

    插入排序

    什么是插入排序 什么是插入排序?想到插入我脑子里冒出来一个相近的词就是插队,我那时还在上大二,排在食堂一楼打饭,忽然来了一个没素质的一顿操作猛如虎地插到了我前面,唉,这人没救了! 我当时就在想能不能用插入排序来描述这件事,后来发现不行,也就是说插队不是插入排序生活中的体现。 好的,在理解完插入排序生活中的例子后,我们开始给它下个定义: 给定一组数据集,遍历这组数据集,每次拿当前遍历的元素与其前面元素的有序数据集的元素进行比较,将其插入相应的位置,我们将这种排序算法称之为“插入排序 实现一个插入排序 思路 大致是这样子,在已给定的数据集中,我们先拿第一个和第二个元素比大小排序,之后进行第二次循环,我们将第三个元素与已经排好序的第一个和第二个数据集中的元素进行比大小,将其插入合适位置

    58220发布于 2020-09-10
  • 来自专栏算法与数据结构

    PTA 7-4 排座位(25 分)

    7-4 排座位(25 分) 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!

    1.6K90发布于 2017-12-29
  • 来自专栏学习笔记持续记录中...

    插入排序

    插入排序的基本思想是: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素为新元素,在已经排序的元素序列中从后向前扫描 如果已排序元素大于新元素,将已排序元素移到下一位置 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置

    42420发布于 2020-03-17
  • 来自专栏从码农的全世界路过

    插入排序

    是将一个数据插入到已经排好序的有序数组中,从而得到一个新的、个数加一的有序数组;

    28520编辑于 2022-06-20
领券