首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏C++信息学奥赛

    杨校老师课堂之排序算法——标记应用专项题单

    ]=1 表示数字 5 出现过)空间换时间:通过 O (1) 时间复杂度完成元素查询与标记统计与筛选计数统计:通过 a[t]++ 统计数字出现次数(第三套代码)补集思想:输出未被标记的元素(第二套代码)排序输出

    19800编辑于 2025-07-03
  • 来自专栏全栈程序员必看

    java数组排序_JAVA数组排序

    ; i++) { arr[i] = (int) (Math.random() * 100) + 1; //随机赋值 System.out.print(arr[i] + ” “); } /* *冒泡排序法 } System.out.println(); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + ” “); //排序后的数组 } /* * 数组 */ for(int i=0;i0&&arr[i-1]==arr[i]) break; System.out.print(arr[i] + ” “); }//后的数组 }

    1.6K30编辑于 2022-09-07
  • 来自专栏搞前端的李蚊子

    数组对象的然后排序

    data: 1 },{ name: 'fff', data: 4 }, ]; const sort = arr => { // [val.name] = val; newArr.push(val); }; }); // 最简单的使用sort let sortArr = newArr.sort((a, b) => { return a.data - b.data; }); // 冒泡排序

    1.3K130发布于 2018-03-14
  • 来自专栏技术进阶

    Golang数组&切片

    合并两个整型切片,返回没有重复元素的切片,有两种策略 1. 通过双重循环来过滤重复元素(时间换空间) // 通过两循环过滤重复元素 func RemoveRepByLoop(slc []int) []int { result := []int{} / 效率第一,如果节省计算时间,则可以采用如下方式 // 元素 func RemoveRep(slc []int) []int{ if len(slc) < 1024 { //

    4.7K20编辑于 2022-09-21
  • 来自专栏分享学习

    HashSet内部的自动排序原理

    Hashset内部排序是根据ASCII码进行排序 HashSet的自动取是根据hashcode 和 equals 进行比较的,而不是直接使用等号,因为对于引用类型的数据来说,等于号比较的是引用之间的地址

    1.5K20发布于 2021-05-20
  • 来自专栏Hadoop数据仓库

    MySQL 数字辅助表排序、行转列

    https://blog.csdn.net/wzy0623/article/details/53895786 一、需求 一个字段有多行记录,查询结果为排序的一行记录,例如记录值为:

    2.6K10发布于 2019-05-25
  • 来自专栏我的博客

    排序

    排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。 每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用排序进行排序) 思想: 设待排序序列的元素取值范围为0到m,则我们新建一个大小为m+1的临时数组并把初始值都设为0,遍历待排序序列 ,把待排序序列中元素的值作为临时数组的下标,找出临时数组中对应该下标的元素使之+1;然后遍历临时数组,把临时数组中元素大于0的下标作为值按次序依次填入待排序数组,元素的值作为重复填入该下标的次数,遍历完成则排序结束序列有序 示例: $v){ for($i = 0; $i < $v; $i++) { echo $k; } } 应用大量数据排序 比如9亿不重复的9位数字排序,可以初始化

    71560发布于 2018-04-28
  • 来自专栏用户2442861的专栏

    排序

    每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用排序进行排序)。排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,排序使用线性时间(Θ(n))。 但排序并不是 比较排序,他不受到 O(n log n) 下限的影响。        总共有100个。然后对A[1..n]从头到尾扫描一遍,把每个A[i]放入对应的B[j]中。 然后再对这100个中每个里的数字排序,这时可用冒泡,选择,乃至快排,一般来说任何排序法都可以。 如果所有的数字都落在同一个中,那就退化成一般的排序了。 当然排序的空间复杂度为O(N+M),如果输入数据非常庞大,而的数量也非常多,则空间代价无疑是昂贵的。此外,排序是稳定的。

    74640发布于 2018-09-14
  • 来自专栏数据结构与算法

    排序

    排序        排序的思想是若待排序的记录的关键字在一个明显有限范围内(整型)时,可设计有限个有序,每个桶装入一个值(当然也可以装入若干个值),顺序输出各的值,将得到有序的序列。

    60090发布于 2018-04-12
  • 来自专栏用户1175783的专栏

    # 排序

    # 排序 # 原理 求出无序集合的最大值与最小值(这里的最小值指存在负数的情况),创建对应的数组长度 length=max+1 这里要处理一下负数 if min<0: length+=abs(min) 该length就是数组的长度,并创建这个数组将所有值初始化为0 然后遍历无须数组,修改中元素的个数(数组所以对应的值就是无需数组中相同值的个数) 最后只需要将数组中值大于 # 实现 inputArr = [ 11,10,199383, 34, -1,-32,-29, 4, 0, 34, 5, 4, 36, 1, 8, 123, 453, 1008] print("未排序集合 minItem>item): minItem=item # 最小值,最大值 print("min:{0}\tmax:{1}".format(minItem,maxItem)) # 创建数组 0): sortArr[sortIndex]=index bigArr[index]-=1 sortIndex+=1 print("已排序集合

    42120发布于 2019-09-10
  • 来自专栏Jed的技术阶梯

    排序

    排序是一种排序的思想,其实现包括计数排序和基数排序两种,冒泡排序、选择排序、插入排序、归并排序、快速排序和堆排序都是基于比较的排序,而排序提出了一种新的思路,即基于数据状态的排序。 1. 排序的思想 (1) 得到无序数组的取值范围 ? (2) 根据取值范围"创建"对应数量的"" ? (3) 遍历数组,把每个元素放到对应的""中 ? ,总的来说为O(n) 稳定性:排序是否稳定取决于""用什么数据结构实现,如果是队列,那么可以保证相同的元素"取出去"后的相对位置与"放进来"之前是相同的,即排序是稳定的,而如果用栈来实现"",则排序一定是不稳定的 ,因为排序可以做到稳定,所以排序是稳定的排序算法 3. 排序的实现之基数排序(待更新) (1) 基数排序图示过程 (2) 基数排序Java代码实现

    1.2K60发布于 2019-05-09
  • 来自专栏后端知识体系

    排序

    # LeetCode-排序 排序算法回顾 示例1 输入: nums = [4,0,1,2,0,5] 输出: [0,0,1,2,4,5] # 解题思路 排序(Bucket Sort)的原理很简单 在排序时,创建容量为MAX的数组r,并将数组元素都初始化为0;将容量为MAX的数组中的每一个单元都看作一个""。 在排序时,逐个遍历数组a,将数组a的值,作为"数组r"的下标。 ,在计数排序中,每个只存储相同的元素 而排序中每个存储一定范围的元素,通过映射函数,将待排序数组中的元素存储到各个对应的中 之后对每个中的元素进行排序 最后将非空桶中的元素逐个放入原序列中 排序需要尽量保证元素分散均匀 ,否则当所有数据集中在同一个中时,排序就会失效 排序的稳定性取决于内部使用的排序算法 # Java代码2 import java.util.ArrayList; import java.util.Collections N,共分为M个,主要步骤有: N次循环,将每个元素装入对应的中 M次循环,对每个中的数据进行排序(平均每个有N/M个元素) 一般使用较为快速的排序算法,时间复杂度为O(nlogn),实际的排序过程是以链表形式插入的

    38730编辑于 2022-07-14
  • 来自专栏hotarugaliの技术分享

    排序

    简介   排序是将待排序序列分到有限数量的中,然后对每一个分别进行排序排序的前提假设为被排序序列的关键字数值符合均匀分布,此时排序的平均时间复杂度为 ,最坏时间复杂度为 其中 为的数量。当数量 时,此时排序的复杂度为线性复杂度 。   排序是非原址的,其稳定性取决于内层排序的稳定性。一般采用稳定的插入排序作为内层排序算法,此时排序是稳定的。 2. 思想 排序的主要思想是对待排序序列的关键字数值进行分块,每一块对应一个,然后对每个使用插入排序(或其他排序算法)进行排序,最后将所有中的元素串联起来即得到有序序列。 3. +1] = bkt[j]; j--; } bkt[j+1] = key; } } // 排序

    39430编辑于 2022-03-01
  • 来自专栏seth-shi的专栏

    排序算法-排序

    排序很适用于有 0~100 个数, 然后打乱顺序, 重新分配. 不过如果给定的数据范围差距很大, 排序的算法效率变低. 步骤 申请 n 个,根据需求 遍历一个给定的数组,找到最大值和最小值 遍历数组,假设遍历的值为num,按照公式floor((num - min) / n)即可得知放入哪个 如果中已存在元素,拉出一个链表 ,并且按照从小到大的顺序 重复 3,4 直至把所有元素装入中 遍历所有中的链表, 直接把每一个元素载入数组,排序即可完成 package main import ( "fmt" " bucketChunk := (max - min + 1) / buckets bucketLinks := make([]*LinkList, buckets) // 把所有数字放入中并且排序 } if b.head.data > num { b.head = &Node{num, b.head} return } // 排序插入

    26710编辑于 2023-12-18
  • 来自专栏JavaEE

    排序算法 --- 排序

    一、排序思想 之前将的计数排序,有些局限性,比如数列最大值和最小值差距不能太大,而且只能排整数。排序就对这些局限性做了弥补。排序的思想就是每个代表一个区间范围,里面可以装若干个元素。 然后对这些内部进行排序,最后遍历这些,那么数列就是有序的了。 排序 然后开始遍历原始数列,把元素放入对应的中,如下: ? 排序 对每个内部的元素进行排序,如下: ? 排序 最后遍历所有的,输出的元素就是有序的了。 排序的缺点:如果数据分布不均衡,比如最大值1000,最小值0.5,剩余元素都是零点几的,也就是说最后一个放最大元素,其他元素都在第一个,这样性能就会下降,并且创建了很多空桶,浪费空间。 (num).add(arr[i]); } // 对每个内部进行排序 for (int i = 0; i < buckets.size(); i++) {

    49751发布于 2020-10-10
  • 来自专栏C++信息学奥赛

    杨校老师课堂之不去排序算法——计数应用专项题单

    排序题目描述输入5个不大于10的正整数,请按照从小到大的顺序输出这5个数。输入描述输入5个正整数。输出描述从小到大顺序输出5个数。中间用空格隔开。 俄罗斯套娃(不去)题目描述本来有一个完整的俄罗斯套娃,现在被小可都拆开了,很是凌乱,现在需要你帮我按套娃的尺寸的给我(每个尺寸大小可能重复),帮我一起把套娃组装起来!

    15800编辑于 2025-07-03
  • 算法】有序和无序,C语言版

    有序 时间复杂度:O(N) 思路: 1.双指针方法,一个用来遍历整体数组,另一个用来维护后的空间。 2.如果两个指向的数大小是不同的,则维护空间++,并且把新的数加进去。 = arr[i]) { num++; arr[num] = arr[i];//注意两句的逻辑顺序 } } return 0; } 无序 时间复杂度:O(N^2) 思路: 1.和有序思路相似,建立双指针。 2.不同的是判断是否重复,每一次判断都需要在已经的范围里循环一遍。

    10910编辑于 2025-12-16
  • 来自专栏全栈程序员必看

    JS数组添加数据、数组排序、数组

    //二维数组 Data.push({ "value":Table[i].字段}); //多维数组 Table.push(Data); } //数组排序 j]=Data[j+1]; Data[j+1]=temp; }; }; }; return Data; }; //数组

    5K30编辑于 2022-07-01
  • 来自专栏Ryan Miao

    Java中对List, Stream

    问题 当下互联网技术成熟,越来越多的趋向中心化、分布式、流计算,使得很多以前在数据库侧做的事情放到了Java端。今天有人问道,如果数据库字段没有索引,那么应该如何根据该字段? 你需要知道HashSet如何帮我做到了。换个思路,不用HashSet可以吗?最简单,最直接的办法不就是每次都拿着和历史数据比较,都不相同则插入队尾。而HashSet只是加速了这个过程而已。 ,那么是如何的呢? 在本题目中,要根据id,那么,我们的比较依据就是id了。 回到最初的问题,之所以提这个问题是因为想要将数据库侧拿到Java端,那么数据量可能比较大,比如10w条。

    9.7K70发布于 2018-04-16
  • 来自专栏算法其实很好玩

    Day4-线性表-排序链表

    二 题目 Q:给定排序的链表,删除重复元素,只保留重复元素第一次出现的节点 那么对于以下这个链表 2→3→3→5→7→8→8→8→9→9→10 则返回 2→3→5→7→8→9→10 三 分析 排序链表,意味着,重复元素都是相邻的,即你前面删完的重复元素,后面不会出现~ 这第一种情况比较好理解,用两个指针,pre和cur,cur指向当前节点,pre指向前驱节点。

    1K20发布于 2019-07-16
领券