• 2024-11-05算法与数据结构——基数排序
    基数排序基数排序(radixsort)的核心思想与计数排序一致,也通过统计个数来实现排序。计数排序适用于数据量n较大但数据范围m比较小的情况。假设我们需要对n=106个学号进行排序,而学号是一个8位数字,这意味着数据范围m=108非常大,使用计数排序需要分配大量内存空间,而基数排序可以避免这
  • 2024-10-30考研打卡(3)
    开局(3)开始时间 2024-10-30 21:38:56结束时间 2024-10-30 22:27:21呜呜今天体侧了数据结构设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行__躺的分配和回收才能使得初始关键字序列变成有序序列。(武汉科技大学2014)A3B4C5D8A3答案
  • 2024-10-30SA:从入门到入土
    基本应用读入一个长度为$n$的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序(用ASCII数值比较)从小到大排序。解法1.将每个后缀取出来,直接排序\(O(n^2\logn)\)2.用hash二分LCP比较下一位,\(O(n\log^2n)\)3.倍增求后缀数组,\(O(n\logn)\)
  • 2024-10-26必学排序算法——基数排序
    目录前言一、什么是基数排序二、算法思想三、算法分析1、时间复杂度2、空间复杂度四、算法的优点五、算法的缺点六、优化方案七、动态图解八、经典例题1.排序数组代码题解九、结语前言基数排序算法是必须掌握的一种基础算法,在一些比较出名的竞赛acm、蓝桥杯,并且在
  • 2024-10-20基数排序1111
    相对于其他排序,基数排序不是将两个数作比较,通过将他们的个,十,百,千等位存入对应的桶中,桶可以为10个,对应着0-9,还有一点如果数字的最大位不同,那需将其他小于最大位的数前面补0,保持与最大位的数的位一致。进入的顺序和出去的顺序是一致的013021011052062043个0123456021,011052,06
  • 2024-09-10【五一省选集训day4】Permutation
    【五一省选集训day4】Permutation每次操作把数分成两组,每组内的顺序不变,把第\(0\)组放到第\(1\)组前面。发现这很像基于二进制的基数排序。假设我们进行\(k\)次这样的操作,就相当于给每个数赋一个值\((x,y)\),其中\(0\lex\le2^k-1,y=\texttt{数的下标}\)。然后对第一维
  • 2024-08-29Java算法之基数排序(Radix Sort)
    简介基数排序是一种非比较型整数排序算法,其原理是按照低位先排序,然后收集,再按照高位排序,再收集,依次类推,直到最高位。这种方法可以视为对每个位上的数字进行稳定的排序。算法步骤确定最大数的位数。对每一位进行排序:从最低位开始,使用稳定的排序算法(如计数排序)对当前位进
  • 2024-08-19排序算法 基数排序 RadixSort --C语言实现
    基数排序基数排序(radixsort)属于“分配式排序”(distributionsort),又称“桶子法”(bucketsort)或binsort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O(nlog(r)m),其中r为所采取的基数,而m为堆数
  • 2024-07-17排序算法汇总
    目录直接插入排序希尔排序选择排序冒泡排序快速排序归并排序二路归并算法归并排序算法自顶向下归并排序:(注意配合上述二路归并算法共同实现)自底向上归并排序:计数排序桶排序算法计数排序算法基数排序最低位优先基数排序:最高位优先基数排序:基数排序小结堆排序经典排序算法小结关键值
  • 2024-07-09基数排序算法Python实现
    1.基数排序原理和步骤基数排序是一种非比较型的排序算法,特别适用于处理整数或者字符串等可以分解为多个部分的数据。其基本思想是按位(或字符)进行排序,从最低有效位到最高有效位逐次排序。基数排序常分为LSD(LeastSignificantDigit)和MSD(MostSignificantDigit)两种类型。以
  • 2024-06-08后缀数组学习笔记
    1.前置知识:基数排序1.1.思想现有如下序列:3,44,38,5,47,15,36,32,50,现在要用基数排序算法排序,要怎么做?基数排序的初始状态如下:按照个位将原序列中的数分组,放入对应的集合将分好的数按照个位的顺序取出,得到:将序列中的数重新按照十位分组,放入对应集合:将每一位上
  • 2024-04-27基数排序 LSD py
    链接:https://www.nowcoder.com/questionTerminal/1e68ccb2cbc74c3d9e0dea0c568789b8设数组S[]={154,265,146,31,213,14,157,189,91,10,111,123},采用最低位优先(LSD)基数排序将S排列成升序序列,第1趟分配收集后元素14之前,之后紧邻的元素是()第1趟分配收集后的结果为:10,31,91,111,213,
  • 2024-03-27基数排序详解
    基数排序详解一、基数排序的基本概念二、基数排序的特点二、基数排序的工作过程三、基数排序的伪代码四、基数排序的C语言代码示例五、基数排序的稳定性六、基数排序的优化与变体七、基数排序的应用场景八、结论在计算机科学中,排序算法是一种非常基础和重要的算法类型
  • 2024-03-25十大经典排序之基数排序
    文章目录概要代码实现小结概要基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。代码实现#include<stdio.h>#defi
  • 2024-02-13排序(待填充)
    题目描述为了快速地把修罗王和邪狼从混乱的队伍中找出来,典狱长准备对排队的囚犯进行从小到大的按编号排序,但是他不知道用哪一种排序方法最合适,因此他准备请教前来协助的高级魔法师张琪曼和楚继光。输入共两行,第一行为一个数N(N≤100000),即排队的总人数,第二行为N个数,即每
  • 2024-02-03第十五节:排序算法详解3(希尔排序、计数排序、桶排序、基数排序)
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载
  • 2024-01-28O(n) 排序 - 基数排序
    O(n)排序——基数排序题目:https://www.luogu.com.cn/problem/P1177基数排序来举个例子:我们需要对\(c\)1452313进行排序定义\(a\)23567,第\(i\)个表示序列中有\(a_i\)个小于\(i\)的元素。从左向右扫一遍,序列的确定部分如下加入1,?1?????,\(
  • 2023-11-25不常见的排序算法 - 桶排序、计数排序、基数排序
    提到排序,我们最先想到的肯定是常见的那些排序算法:选择排序、冒泡排序、快速排序、归并排序考虑到性能的情况下,我们应该会优先使用快速排序,因为它的平均时间复杂度是O(nlogn),至于归并排序,虽然它也是一个拥有O(nlogn)平均时间复杂的一个算法,但是它的空间复杂度较快排也较为苛刻,它
  • 2023-11-06cf1322BPresent(基数排序+双指针+拆位)
    cf1322BPresent首先拆位是显然的,对于两个数a[i],a[j],除了考虑当前位上的数,我们还要考虑是否会产生进位,我们可以利用基数排序+双指针,因为我们每次都是将低位的排好序了,所以我们可以用双指针计算进位,然后分类计算一下,当前为为1的情况即可。#include<cstdio>#include<algorithm>#
  • 2023-10-19C#基数排序算法
    前言基数排序是一种非比较性排序算法,它通过将待排序的数据拆分成多个数字位进行排序。实现原理首先找出待排序数组中的最大值,并确定排序的位数。从最低位(个位)开始,按照个位数的大小进行桶排序,将元素放入对应的桶中。将各个桶中的元素按照存放顺序依次取出,组成新的数组。接着
  • 2023-10-13深入了解基数排序:原理、性能分析与 Java 实现
    基数排序(RadixSort)是一种非比较性排序算法,它根据元素的每个位上的值来进行排序。基数排序适用于整数或字符串等数据类型的排序。本文将详细介绍基数排序的原理、性能分析及java实现。基数排序原理基数排序的基本原理是按照低位先排序,然后收集;再按照高位排序,再收集;以此类推,直到最高
  • 2023-10-01后缀数组
    基数排序算法思想:利用桶的单调性,从低到高位依次将整数放进对应数位的桶中。时间复杂度:\(O(d*(n+siz))\),其中\(d\)为数位,\(n\)为元素个数,\(siz\)为桶的大小。后缀树对于字符串\(s\),取出\(s\)所有的后缀字串,并建立字典树。这个树就是\(s\)的后缀树。空间复杂度\(
  • 2023-09-19基数排序(这里假设数据的最高位为3)
    基本思想:在需要排序的一串数据中,取最长位数为参考,不足最长位数的数据要在前面补零,然后形成一串相同位数的数据,最后通过比较这串数据的个位数,十位数,百位数….最后就会得到一个有序的序列。用Java实现如下所示:importjava.util.Arrays;publicclassTest1{publicstaticvo
  • 2023-09-10CSP-S2022初赛易错题解析
    一.2.错误原因:不会解析:real代表实际运行时间,user代表用户态运行时间,sys表示内核态运行时间,故选A 5.错误原因:不会解析:基数排序的思路类似于桶排序,故选A 9.错误原因:不会解析:这个问题可以转化成圆排列问题,公式为A(n-1,n-1),即(n-1)!,要考虑从两个方向看的图,所以要除
  • 2023-09-02堆排序 桶排序 基数排序
    堆排序使用数组和表示堆大小的整数heapSize表示堆:vector<int>arr{9,5,3,7,2};intheapSize=5;heapSize=5表示数组从索引0开始的5个元素表示一个堆。堆结构就是用数组实现的完全二叉树结构。求数组中索引i位置节点的父子节点:父节点:(i-1)/2左子节点:2*i+1右子节