首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Laikee Tech Space

    layui 异步数据排序重加载

    //console.log(obj.type); //当前排序类型:desc(降序)、asc(升序)、null(空对象,默认排序) //console.log( this); //当前排序的 th 对象 //type 0 积分降序 1积分升序 2邀请数降序 3邀请数升序 // if(obj.field { type=""; } } if(obj.field=="invitenum"){ //积分排序 if(obj.type=="desc"){ //降序 type=0 type=2; }else if(obj.type ,如果不设的话,将无法标记表头的排序状态。

    87420编辑于 2022-04-25
  • 来自专栏Spark学习技巧

    必读|spark的重分区及排序

    当时浪尖也在星球里讲了一下,整个关于分区排序的内容。今天,在这里给大家分享一下。 昨天说了,mapPartitions 的使用技巧。 假如,后面再跟mapPartitions算子的话,其算子就是针对已经按照key排序的分区,这就有点像mr的意思了。 repartitionAndSortWithinPartitions 也可以用于二次排序。 下面举个简单的例子。 including) mdhdeMacBook-Pro-3:output mdh$ head -n 10 part-00002 (47,) (17,to) (8,a) (5,using) (5,of) (2, Python) (2,locally) (2,This) (2,Hive) (2,SparkPi) mdhdeMacBook-Pro-3:output mdh$

    1.7K20发布于 2019-05-09
  • 来自专栏Spark学习技巧

    必读|spark的重分区及排序

    当时浪尖也在星球里讲了一下,整个关于分区排序的内容。今天,在这里给大家分享一下。 更多大数据小技巧及调优,spark的源码文章,原理文章及源码视频请加入知识星球。 假如,后面再跟mapPartitions算子的话,其算子就是针对已经按照key排序的分区,这就有点像mr的意思了。 repartitionAndSortWithinPartitions 也可以用于二次排序。 下面举个简单的例子。 including) mdhdeMacBook-Pro-3:output mdh$ head -n 10 part-00002 (47,) (17,to) (8,a) (5,using) (5,of) (2, Python) (2,locally) (2,This) (2,Hive) (2,SparkPi) mdhdeMacBook-Pro-3:output mdh$ 上面只是一个简单的使用,关于二次排序及高效结合

    2K20发布于 2018-08-20
  • 来自专栏c语言

    排序(2)

    我们在排序(1)中说到选择排序的代码: void SelectSort(int* a,int n) { int begin=0,end=n-1; int mini=begin,max=begin i=2,begin=1,end=6。 1随机数选key 2三数取中(把选中的数挪到最左边) int GetMid(int* a,int left,int right) { int mid=(left+right)/2; if(a 那么在这样一个数字较少的情况下,我们应该选择哪种排序呢?希尔排序的优势就是让大的数更快跳到后面,小的数更快跳到前面。 (a+left,right-left+1); } else { int mid=(left+right)/2; if(a[left]<a[mid]) {

    25110编辑于 2024-07-17
  • 来自专栏C++打怪之路

    排序2:希尔排序(缩小增量排序)

    上一期,我们介绍了直接插入排序。 这一期,我们来介绍希尔排序的底层逻辑和代码实现。 ---- 目录 希尔排序的基本思想 单趟的实现 整个排序的实现 总结 ---- 希尔排序的基本思想 先选定一个整数gap,把待排序文件中所有记录分成gap个 组,所有距离为gap的记录分在同一组内 分组排序后的结果:  然后,逐渐缩小gap进行排序,数据就会越来越有序。 2、每一组从后往前遍历排序。         3、与后面一个间隔为gap的数比较。         整个排序的实现 核心思想:         1、gap递减,缩小排序组数,最终到gap = 1的时候,就是一次直接插入排序了。         2、齐头并进。

    72620编辑于 2023-03-31
  • 来自专栏python3基础算法

    排序2:插入排序

    插入排序原理:通过构建有序序列,对于未排序的数据,在已排序的序列中从后向前比较,找到位置插入。 算法思想:第一个元素默认已排序取出第二个元素,从后向前扫描序列如果已排序的元素大于新元素,将两者互换重复步骤3,直到找到已排序元素<= 新元素将新元素插入重复2-5步骤代码实现:from typing import Listdef insert_sort(arr :List[int]): """ 插入排序 arr:待排序list return:就地排序,in-place

    38910编辑于 2022-08-09
  • 来自专栏搞前端的李蚊子

    数组对象的去重然后排序

    data: 10 },{ name: 'aaa', data: 20 },{ name: 'ccc', data: 2 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.5K130发布于 2018-03-14
  • 来自专栏AngelNI

    排序算法-2

    桶排序,又简单,又快速,适合处理大量数据 桶排序 #include<iostream> using namespace std; int n ; int a[1000]; // O(m+n) int i<=n;++i) { int t; cin>>t; a[t]++; } //桶排序 { cout<<i<<" "; } } cout<<endl; } return 0; } 归并排序 i+1; ll c2 = 2*i+2; ll max = i; if(c1<n&&tree[c1]>tree[max]) { max = c1; } if(c2<n&&tree[c2]> tree[max]) { max = c2; } if(max !

    39910发布于 2020-04-14
  • 来自专栏一英里广度一英寸深度的学习

    线性排序算法-堆排序 (2)

    朴素思想是采用快速排序,选最小的。那么,出队复杂度O(1),入队复杂度二分查找O(logn)。但每次插入,都需要移动O(n)的元素。 self.heap[j] = tmp def swapUp(self,index): while(index>0): parent = (index-1)//2 else: break def swapDown(self,index): lchild = index*2+ self.swap(index,rchild) index = rchild lchild = index*2+ self.swap(index,lchild) index = lchild lchild = index*2+

    85530发布于 2018-09-12
  • 来自专栏分享学习

    HashSet内部的自动排序和去重原理

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

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

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

    https://blog.csdn.net/wzy0623/article/details/53895786 一、需求 一个字段有多行记录,查询结果为去重排序的一行记录,例如记录值为: 1,2,4 1,4,5 2,3 23,56,67 3,4 要求查询结果为: 1,2,3,4,5,23,56,67 二、方案 使用数字辅助表实现 -- 建立数字辅助表 create table while s<=cnt do insert into nums select a+s from nums where a+s <= cnt; set s=s*2; pFastCreateNums(1000000); -- 建立测试表 create table t1 ( a varchar(100) ); insert into t1 values('1,2,4 '),('1,4,5'),('2,3'),('23,56,67'),('3,4'); commit; -- 查询 select group_concat(a) from

    3K10发布于 2019-05-25
  • 来自专栏分享/效率/工具/软件

    (2)交换排序之冒泡排序

    title: (2)交换排序之冒泡排序 date: 2019-02-10 13:00:00 +0800 update: 2019-02-10 13:00:00 +0800 author: me cover: http://ww1.sinaimg.cn/large/006jIRTegy1fzwiafdswej31jk0v9qp2.jpg preview: 冒泡排序是非常好理解的,以从小到大排序为例 tags: 算法 ---- 文章目录 (2)交换排序之冒泡排序 算法步骤 演示图 时间复杂度 空间复杂度 稳定性 Java代码实现 (1) 没有任何优化 (2) 对本身有排序的进行优化 (3) 部分有序 (2)交换排序之冒泡排序 算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。 static void main(String[] args) { System.out.println("冒泡排序-没有优化的"); int[] arr = {1,1,2,0,9,3,12,7,8,3,4,65,22

    82760发布于 2019-09-17
  • 来自专栏余林丰

    2.比较排序之梳排序

      梳排序的知名度远没有其他排序算法那么高,它是在冒泡排序的基础上做的改进,引入类似“步长”以及“子序列”概念,这两个概念在后面的排序算法中会经常提及。    待排序列:{10, 2, 11, 8, 7} groupNums = length = 5   步长系数(分组系数)coefficient = 1.3   排序过程如下图所示。 ? ?   Java 1 package com.algorithm.sort; 2 3 import java.util.Arrays; 4 5 /** 6 * 梳排序 7 * Created 9 public class Comb { 10 public static void main(String[] args) { 11 int[] nums = {10, 2, 2 def comb_sort(nums): 3 cofficient = 1.3 #最佳系数 4 groupNums = len(nums) 5 flag

    1.5K80发布于 2018-01-12
  • 来自专栏明志德到的IT笔记

    C# 排序算法2:选择排序

    每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,            2. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。            3. .以此类推,直到全部待排序的数据元素排完。 int minValueIndex = i; //最小值的下标位置,初始设为第一个位置 for (int j = i+1; j < arr.Length; j++)// 2. :{ShowArray(arr1)}"); var arr2 = BubbleSort(arr1); Console.WriteLine($"冒泡排序:{ ShowArray(arr2)}"); var arr3= SelectSort(arr1); Console.WriteLine($"选择排序:{ShowArray

    51010编辑于 2023-10-21
  • 来自专栏algorithm4th

    第2章 排序

    插入排序的改进,虽然说是改进,但相比插入排序有优有劣: 优点: 对于大规模乱序数组的排序时比插入排序快 缺点: 不再是稳定排序 分组: 将i,i+h,i+2_h,i+3h... 下列算法使用了递增(减)序列 1/2({3}^{k}-1) ,从N/3开始减至1。 The number of compares used by shellsort with the increments 1, 4, 13, 40, 121, 364, ... is O(N3/2). int hi) { if (hi <= lo) { return; } int mid = lo + (hi - lo) / 2; int hi) { if (hi <= lo) { return; } int mid = lo + (hi - lo) / 2;

    62420编辑于 2023-05-22
  • 来自专栏算法其实很好玩

    Day4-线性表-排序链表去重

    二 题目 Q:给定排序的链表,删除重复元素,只保留重复元素第一次出现的节点 那么对于以下这个链表 2→3→3→5→7→8→8→8→9→9→10 则返回 2→3→5→7→8→9→10 三 分析 排序链表,意味着,重复元素都是相邻的,即你前面删完的重复元素,后面不会出现~ 这第一种情况比较好理解,用两个指针,pre和cur,cur指向当前节点,pre指向前驱节点。 <<head->value; } head = head->next; } cout<<endl; } int main(){ Node a(2) 即返回 2→5→7→10 冷静分析: 第一种情况比较好实现,因为发现值一样,删除就完事了。 那第二种情况复杂在哪? 重复的元素,全删,不保留。 需要特别注意的是: 在对重复节点处理时 比如 2→3→3 第一种情况的处理:删后面的3,留第一个3 第二种情况的处理:从前面开始删,删前面的3,最后一个3

    1.2K20发布于 2019-07-16
  • 来自专栏飞扬的花生

    C#List的排序和简单去重总结

    因此List<int>就可以直接进行排序。 2,带有比较器参数的Sort方法 ----Sort(IComparer<T>) 此种排序方法必须另外写一个额外的比较器类,该类必须实现IComparer接口,因为该接口有用于比较的重载函数Compare ,所以我们必须实现它来完成自己希望的比较,例如自己定义一个学生类Student,改类中有ID、姓名、年龄等属性,我们可以选择年龄属性作为排序属性 3,带有比较器参数,可以指定排序范围的Sort方法--- Text = string.Join(",", this.dataList.ToArray()); } ///

    /// 去重 sender, EventArgs e) { IntCompare compare = new IntCompare(); //只对索引3开始的2个包括自己进行排序

    1.7K90发布于 2018-01-18
  • 来自专栏Ryan Miao

    java中List对象列表去重或取出以及排序

    面试碰到几次list的去重和排序。下面介绍一种做法: 1. list去重 1.1 实体类Student List<Student>容量10k以上,要求去重复。 这里用到31,这个31在别的博客中看到的原因是这样的:obj*31==obj<<5-obj.左移5位相当乘以2的5次方,就是32.null的hashCode为空。 name.hashCode() : 0); result = 31 * result + age; return result; } } 1.2通过HashSet去重 (list.size(),list2.size()+set.size()); } } 去重的原理和简单,无论你仅仅是想把重复的丢掉,或者将重复的取出来。 参考:1.8HashMap 2. list对象排序 同样list中存放的是Student对象,我需要一个规则来排序。这个排序的规则这里定义为id的比较大小。

    5K90发布于 2018-03-13
  • 来自专栏xiaosen

    数据结构算法--2 冒泡排序,选择排序,插入排序

      基础排序算法         冒泡排序 思想就是将相邻元素两两比较,当一个元素大于右侧相邻元素时,交换他们的位置,小于右侧元素时,位置不变,最终序列中的最大元素,像气泡一样,到了最右侧。 这时冒泡排序第一轮结束,数列最右侧元素9的位置可认为是一个有序区,有序区目前有一个元素. 第二轮排序结束后,数列右侧的有序区有了两个元素.   由于该排序算法每一轮都要遍历所有元素,平均时间复杂度为O(n*n) def bubble_sort(li): for i in range(len(li)-1): # 第i趟 +1]=li[j+1],li[j] li=[random.randint(1,100) for i in range(20)] bubble_sort(li) print(li) 如果在某一趟排序中列表没有发生变化 min_loc=j # 目前的最小元素索引 li[i],li[min_loc]=li[min_loc],li[i] return li 插入排序

    36910编辑于 2024-03-15
  • 来自专栏用户1175783的专栏

    # 归并排序(2-路归并排序)

    # 归并排序(2-路归并排序) # 原理 将无序集合拆分成只有一个元素的有序集合,然后两两合并排序,直到合成一个包涵所有元素的有序集合。 合并排序: {5}{2}{4}{6}{8}{1}{9}{7}{10}{3}=>{5,2}{4,6}{8,1}{9,7}{10,3}=>{2,5}{4,6}{1,8}{7,9}{3,10} 再次合并: { 2,5}{4,6}{1,8}{7,9}{3,10}=>{2,5,4,6}{1,8,7,9}{3,10}=>{2,4,5,6}{1,7,8,9}{3,10} 再次合并: {2,4,5,6}{1,7,8,9 }{3,10}=>{2,4,5,6,1,7,8,9}{3,10}=>{1,2,4,5,6,7,8,9}{3,10} 最后合并: {1,2,4,5,6,7,8,9}{3,10}=>{1,2,4,5,6,7,8,9,3,10 groupCount一定为1,执行完此次排序后排序结束,break跳出while循环借宿排序 if(groupCount==1): break # 就近两个集合的元素个数

    96020发布于 2019-09-10
领券