首页 > 编程语言 >【算法】十大排序算法

【算法】十大排序算法

时间:2024-07-03 19:10:39浏览次数:1  
标签:思想 十大 最大值 元素 算法 数组 排序

冒泡排序

算法思想:基于比较的思想,从第一个元素开始,依次比较相邻两个元素大小,较大者放在后面,经过一轮后,最大的元素位于最后(最大元素不断冒泡到最后的位置),重复n轮。

选择排序

算法思想:基于比较的思想,维护一个记录最大值的变量,遍历所有元素找到最大值所在位置,将其与最后的位置交换,重复n轮。

堆排序

算法思想:基于选择的思想,利用堆数据结构排序不断选择出最大值,初始化堆(通过建堆下潜操作),将堆顶(数组第一位)最大值与最后位置交换,再对堆顶元素进行下潜操作(堆大小减1)。

插入排序

算法思想:基于比较的思想,不断将元素插入到已经排好序的数组,插入排序对于近乎有序的数据处理速度比较快

希尔排序

算法思想:基于插入的思想,可看作插入排序加强版,利用插入排序对近乎有序的数据处理速度比较快的特点,将待排序数组分成多个小组(每隔gap个元素一组),在小组内进行插入排序,此时数组有一定的顺序,不断缩小gap直至1重复分组再组内排序。

归并排序

算法思想:基于分治的思想, - 每次从中间切一刀,处理的数据少一半。 - 当数据仅剩一个时可以认为有序。 - 两个有序的结果,可以进行合并排序。

快速排序

算法思想:基于分治的思想,选取一个基准,将小于基准的元素全部放在左边,大于基准的元素全部放在右边,再递归操作左边数组和右边数组。

计数排序

求出最大值M和最小值m,创建一个长度为M-m的数组,第一个位置存最小值,依次类推。将元素大小与数组索引绑定,最后依次取出数组中的元素达到排序效果。

桶排序

将所有元素放在准备好的桶内,前一个桶内的最大值小于后一个桶内的最小值,再对桶内元素排序。

基数排序

对个位元素进行比较,依次放到对应桶里,再把桶里的元素依次取出放在数组里,相当于完成个位排序,再对数组中元素十位进行重复操,直到最高位。

标签:思想,十大,最大值,元素,算法,数组,排序
From: https://www.cnblogs.com/hudad/p/18282389

相关文章

  • 24位PCM采样数据和16位相互转换算法实例解析
    一概念1.24bit音频:24bit指使用3个字节记录振幅值,意味可以记录16,777,216种声音振幅的变化,动态范围可达144dB(人耳听觉的动态范围是120dB,超过120dB人耳会痛,所以120dB又称痛阀)。下面是三种常见的音频采样比对表: 2.24位一般是采样深度的概念,还有一......
  • SM4国产加密CBC算法快速预览与Framework4.5版本对接
       针对日常加密算法,大致分为对称加密,非对称加密,哈希函数(MD5),其中对称加密比较常见的,如AES、DES、3DES,对称加密算法是指加密和解密采用相同的密钥口,是可逆的,实习那会用的就是DES,网上很多现成的轮子。此外非对称加密算法,常用的如RSA算法、‌ECC算法、‌DSA等算法,非对称......
  • 安防监控视频平台LntonAIServer视频智能分析平台行人入侵检测算法
    在当今社会,随着科技的迅速发展和安全需求的日益增长,行人入侵检测技术成为了安全防护领域的重要研究方向。LntonAIServer行人入侵检测算法作为该领域的先进技术之一,其性能和应用效果受到了广泛关注。首先,从技术角度来看,LntonAIServer行人入侵检测算法采用了深度学习和图像处理......
  • 代码随想录算法训练营第四十六天 | 买卖股票的最佳时机
    121.买卖股票的最佳时机题目链接文章讲解视频讲解动规五部曲:dp[j][0]:表示持有股票的最大现金,dp[j][1]表示不持有股票的最大现金递推公式:第j天持有股票的最大现金为:之前就持有这只股票和今天持有这只股票取最大值:dp[j][0]=max(dp[j-1][0],-prices[j]);第j天不持有......
  • 算法基础入门 - 2.栈、队列、链表
    文章目录算法基础入门第二章栈、队列、链表2.1队列2.2栈2.3纸牌游戏2.4链表如何建立链表?1.我们需要一个头指针(head)指向链表的初始。链表还没建立时头指针head为空2.建立第一个结点3.设置刚创建的这个结点的数据域(左半)和指针域(右半)4.设置头指......
  • 排序函数
    1.std::sort(不稳定排序,时间复杂度为O(nlogn)) std::vector<int>list;std::sort(list.begin(),list.end());//默认升序std::less<int>();std::sort(list.begin(),list.end(),std::greater<int>());//降序autocmp=[](intx,inty){returnx<y;};std::s......
  • laravel 数组元素按中文排序
    1、按英文排序$r=[['color'=>'b','color_zh'=>'波'],['color'=>'c','color_zh'=>'吃'],['color'=>'a','color_zh'=>'啊......
  • PointCloudLib alpha shapes算法提取平面点云边界 C++版本
    测试效果算法简介AlphaShapes算法是一种用于提取平面点云边界特征的方法,以下是对其原理和步骤的详细解释:1.AlphaShapes算法概述目标:从点云数据中提取曲面边界信息,通过计算点云中点的Alpha形状,获得边界特征。Alpha形状:一个可以描述几何体边界的参数。其计算基于一......
  • 153. 寻找旋转排序数组中的最小值(中等)
    153.寻找旋转排序数组中的最小值1.题目描述2.详细题解3.代码实现3.1Python3.2Java1.题目描述题目中转:153.寻找旋转排序数组中的最小值2.详细题解  如果不考虑O(......
  • 常见排序原理及 python 实现
    时间复杂度与空间复杂度常用O(1)或O(n)表示,其中1表示一个单位(最简单的单位,可以是多个或1个,但在时间上总体是较低且连续的),时间通常指的是程序运行时间,空间则是指程序在运行时所占用的内存空间。各个阶段的复杂度可用下面的顺序比较:O(1)<O(logn)<O(n)<O(nlogn)<O(n2).......