首页 > 其他分享 >【数据结构】排序

【数据结构】排序

时间:2024-03-12 19:33:05浏览次数:21  
标签:排序 插入排序 插入 算法 序列 array 数据结构

文章目录

一、排序的概念及引用

1、排序的概念

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持
不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳
定的;否则称为不稳定的。

2、常见的排序算法

二、常见排序算法的实现

1、插入排序

2.1.1基本思想:
直接插入排序是一种简单的插入排序法,其基本思想是:
把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到
一个新的有序序列 。实际中我们玩扑克牌时,就用了插入排序的思想

2、直接插入排序

当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-
1],array[i-2],…的排序码顺序进行比较,找到插入位置即将array[i]插入,原来位置上的元素顺序后移

标签:排序,插入排序,插入,算法,序列,array,数据结构
From: https://blog.csdn.net/2301_79765510/article/details/136608857

相关文章

  • 【数据结构】堆
    目录1、树的概念及结构1.1树的概念1.2树的相关概念1.3树的结构定义2、二叉树的概念及结构2.1二叉树的概念2.2特殊的二叉树2.3二叉树的性质3、堆的概念及结构3.1二叉树的存储方式3.1.1顺序存储3.1.2链式存储3.2堆的概念及结构4、堆的代码实现4.1堆的初始化(建堆)......
  • 深入理解快速排序
    一、快速排序    快速排序是冒泡排序的一种改进算法,相比于冒泡排序效率更优。算法过程分析:    通过采用分治策略,围绕一个x 将原始数组划分为两个子数组,使得前一个子数组的元素≤x≤后一个子数组元素,对两个子数组进行递归排序,再合并成一个有序数组。 ......
  • ABAP SALV-排序、过滤
    01功能说明上篇:ABAPSALV-按钮设置、布局设置本系列将通过模拟用户与开发者之间的对话场景,来逐步演示SALV的使用。在本篇中,我们将继续上一篇内容,以解决用户提出的另外两个需求:排序、过滤。让我们来看看是如何实现的吧。赶快动手试一试,掌握它的用法。02功能效果第6天......
  • 【算法】【线性表】【数组】在排序数组中查找元素的第一个和最后一个位置
    1 题目给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1,-1]。你必须设计并实现时间复杂度为 O(logn) 的算法解决此问题。示例1:输入:nums=[5,7,7,8,8,......
  • SQL 多关键字查询并根据匹配程度排序
    --创建测试表IFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[Score]')ANDtypein(N'U'))DROPTABLE[dbo].[Score]GOCREATETABLE[dbo].[Score]([Id][int]IDENTITY(1,1)NOTNULL,[UserName][nvarchar](50......
  • 关于拓扑排序
    定义拓扑排序在一个DAG(有向无环图)中,我们将图中的顶点以线性方式进行排序,使得对于任何的顶点\({u}\)到\({v}\)的有向边\({(u,v)}\),都可以有\({u}\)在\({v}\)的前面。还有给定一个DAG,如果从\({i}\)到\({j}\)有边,则认为\({j}\)依赖于\({i}\)。如果\({i}\)......
  • 数据结构——线段树 学习笔记
    数据结构——线段树学习笔记classseg_t{private:structemm{intl,r;structv;};vector<emm>a;voidpush_up(intk){}voidaction(intk,intv){}voidpush_down(intk){}voidbuild(vector<any>q,intk,intl,intr){a[k].l=......
  • 快速排序
    快排属于分治算法;思想:快排的思想是分治我们有一个待排序的数组,长度为n。选定一个基准,将数组分成左右两部分,左边的数小于基准,右边的数大于基准。然后我们分别看分割后左右两部分数组,如果元素个数大于1,就再次分割。直到最后,我们得到了n个数组,每个数组含有1个元素。这n个数组......
  • 排序链表(自底向上归并排序)
    题目:时间复杂度:O(nlogn),空间复杂度:O(1)structListNode{intval;ListNode*next;ListNode():val(0),next(nullptr){}ListNode(int_val):val(_val),next(nullptr){}ListNode(int_val,ListNode*_next):val(_val),next(_next){}};class......
  • pandas - 数据排序
    sort_values()函数importpandasaspddata={'名称':['太阳能','床','风扇','沙发'],'单价':[2000,3500,500,3500],'数量':[58,23,69,60]}df=pd.DataFrame(data)#单条件排序,使......