首页 > 其他分享 >排序简介

排序简介

时间:2022-12-04 21:34:42浏览次数:62  
标签:记录 简介 关键字 算法 内存 序列 排序

排序的概念及其运用

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。

稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。

内部排序:数据元素全部放在内存中的排序。

外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。

排序的应用

例如大学排名:

image-20220518223057643

分类

  • 计算的时间复杂度(最差、平均、和最好性能)

  • 内存使用量(以及其他电脑资源的使用)

  • 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序

  • 依据排序的方法:插入、交换、选择、合并等等。

常见的排序算法

虽然排序算法是一个简单的问题,但是从计算机科学发展以来,在此问题上已经有大量的研究。举例而言,冒泡排序在1956年就已经被研究。虽然大部分人认为这是一个已经被解决的问题,有用的新算法仍在不断的被发明。

image-20220518223105400

标签:记录,简介,关键字,算法,内存,序列,排序
From: https://www.cnblogs.com/ncphoton/p/16950869.html

相关文章

  • 排序算法:快速排序
    简介快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排......
  • 排序算法:比较排序
    算法简介:排序排序是一个非常经典的问题,它以特定顺序(递增、非递减(递增或扁平))对数组(或列表)的项目(可以比较,例如整数、浮点数、字符串等)进行重新排序)、递减、非递增(递减或平......
  • 排序算法:非比较排序
    堆排序voidAdjustDown(int*arr,intsz,introot)//向下调整{ intparent=root; intchild=root*2+1; while(child<sz) { if(child+1<sz&&ar......
  • 排序算法:归并排序
    递归实现void_MergeSort(int*arr,intleft,intright,int*tmp){ if(left>=right) return; intmid=left+(right-left)/2; _MergeSort(arr,left,......
  • WebGIS|GeoJSON简介
    简介GeoJSON是用JSON的语法表达和存储地理数据,可以说是JSON的子集。图片数据参考:http://geojson.ioGeoJSON对象GeoJSON总是由一个单独的对象组成。GeoJSON对......
  • 排序链表 重排链表 最接近目标价格的甜点成本 环形链表
    148.排序链表弄到数组里,数组排序,再弄个新链表Listlist=newArrayList<>();ListNodepre=head;while(pre!=null){list.add(pre.val);pre=pre.next;}int[......
  • golang的希尔排序
    1、什么是希尔排序:插入排序的一种又称“缩小增量排序”(DiminishingIncrementSort),是直接插入排序算法​的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.......
  • web APIs-day01-简介js学习
       ......
  • USB总线-USB协议简介(一)
    1.简介USB是通用串行总线(UniversalSerialBus)的缩写。在USB总线出现之前,计算机与键盘、鼠标、扫描仪、打印机都使用专用的接口连接,不同设备的接口不能互用,扩展性很差,每次......
  • Android-操作系统简介01
    01.系统简介1.1Android名词Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件......