精华内容
下载资源
问答
  • 主要介绍了Java实现的数组去重排序操作,结合实例形式分析了Java针对数组去重排序操作相关遍历、排序、判断等使用技巧与注意事项,需要的朋友可以参考下
  • 主要介绍了C++ 字符串去重排序实例代码的相关资料,需要的朋友可以参考下
  • 还在学习算法,处理数据,这个样例可以提供给大家入门参考
  • 数组的扁平化,去重排序 将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组 var arr = [ [1, 2, 2], [3, 4, 5, 5, '5' ], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10]; 1.es6解法 优点:...

    数组的扁平化,去重,排序

    将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组

    var arr = [ [1, 2, 2], [3, 4, 5, 5, '5' ], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
    

    1.es6解法

    优点:语法简洁,代码量小

    缺点:晦涩难懂,兼容性是个大问题

    Array.from(new Set(arr.flat(Infinity))).sort((a,b)=>{ return a-b})
    // [1, 2, 3, 4, 5, "5", 6, 7, 8, 9, 10, 11, 12, 13, 14]
    
    //  语法解析
    
    // 打平数组方法
    // Array.prototype.flat(Infinity)
    // flat为es6新增打平数组方法  Infinity是打平层数
    
    // 其他比较好的方法一
    const flatArray = arr => arr.reduce((a,b) => a.concat(Array.isArray(b) ? flatArray(b): b), []);
    flatArray(arr)
    // [1, 2, 2, 3, 4, 5, 5, "5", 6, 7, 8, 9, 11, 12, 12, 13, 14, 10]
    
    // es5写法便于理解
    // const flatArray = function(arr) {
    //   return arr.reduce(function(a, b) {
    //     return a.concat(Array.isArray(b) ? flatArray(b) : b);
    //   }, []);
    // };
    
    
    // 重点解析Array.prototype.reduce() 这个方法,参考mdn
    // arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
    
    // reduce  方法接受两个参数,第一个是callback,第二个initialValue是初始值,没有的话使用数组第一个元素
    
    // callback 接受四个参数
    
    // accumulator
    // 累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,或initialValue。
    
    // currentValue
    // 数组中正在处理的元素。
    
    // currentIndex可选
    // 数组中正在处理的当前元素的索引。 如果提供了initialValue,则起始索引号为0,否则为1。
    
    // array可选
    // 调用reduce()的数组
    
    var  array=[0,1,2,3,4]
    array.reduce((a,b)=>a+b,[])
    // [] + 0 ="0"  
    // "01234"
    array.reduce((a,b)=>a+b,"")
    // "01234"
    array.reduce((a,b)=>a+b)
    // 10
    
    // 其他比较好的方法二
    Array.prototype.customFlat= function() {
        return [].concat(...this.map(item => (Array.isArray(item) ? item.customFlat() : [item])));
    }
    arr.customFlat()
    // [1, 2, 2, 3, 4, 5, 5, "5", 6, 7, 8, 9, 11, 12, 12, 13, 14, 10]
    
    
    // new Set()  
    // Set为es6新增数据结构,元素唯一,接受一个数组作为参数
    
    // Array.from()  
    // Array.from()是es6将类数组转换成数组的方法
    
    // Array.prototype.sort()
    // sort是es5的排序语法
    
    
    

    2.es5解法

    优点:易于理解,兼容性好

    缺点:语法冗余,代码量大

    打平数组

    // 转成字符串方法
    /*
    arr.toLocaleString()及arr.join()和arr.toString()
    一样所有数据都会转变成字符串型,保留不了原来的数据类型,
    不建议使用,(不影响的也可以用,毕竟简洁)
    */
    arr.toString()  
    // "1,2,2,3,4,5,5,5,6,7,8,9,11,12,12,13,14,10"
    
    //  递归
    var arr_ = [];
    function customFlat(arr) {
      arr.forEach(function(item){
        Array.isArray(item) ? customFlat(item) : arr_.push(item);
      });
      return arr_;
    }
    
    console.log(customFlat(arr));
    // [ 1, 2, 2, 3, 4, 5, 5, '5', 6, 7, 8, 9, 11, 12, 12, 13, 14, 10 ]
    
    // 广度遍历
    function flatten(arr) {
      var res = [];
      var stack = [].concat(arr);
      while (stack.length) {
        var item = stack.shift();
        if (item instanceof Array) {
          stack = stack.concat(item);
        } else {
          res.push(item);
        }
      }
      return res;
    }
    
    console.log(flatten(arr));
    // [ 10, 1, 2, 2, 3, 4, 5, 5, '5', 6, 7, 8, 9, 11, 12, 12, 13, 14 ]
    
    

    数组去重

    // 方法很多,大多原理基本一致,就是检测是否存在。对象属性法检测不了属性的数据类型
    function unique(arr) {
      var result = [];
      arr.forEach(function(item) {
        if (result.indexOf(item) === -1) {
          result.push(item);
        }
      });
      return result;
    }
    
    console.log(unique(flatten(arr))); // flatten方法见上
    // [ 1, 2, 3, 4, 5, '5', 6, 7, 8, 9, 11, 12, 13, 14, 10 ]
    
    

    数组排序

    // 方法很多,这里用一个经典的冒泡排序
    function bubbleSort_1(data) {
      for (var i = 0; i < data.length; i++) {
        for (var j = 0; j < data.length - i - 1; j++) {
          if (data[j] > data[j + 1]) {
            var tem = data[j];
            data[j] = data[j + 1];
            data[j + 1] = tem;
          }
        }
      }
        return data;
    }
    
    console.log(bubbleSort_1(unique(flatten(arr))))   // unique和flatten方法见上
    // [ 1, 2, 3, 4, 5, '5', 6, 7, 8, 9, 10, 11, 12, 13, 14 ]
    
    

    排序去重

    // flatten方法见上
    var result = flatten(arr).sort( function (a,b) {return a-b }).reduce(function(init, current)  {
        if(init.length === 0 || init[init.length-1] !== current) {
            init.push(current);
        }
        return init;
    }, []);
    console.log(result);
    // [ 1, 2, 3, 4, 5, '5', 6, 7, 8, 9, 10, 11, 12, 13, 14 ]
    
    
    

    参考链接:

    1.mdn Array.prototype.reduce()

    2.https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/8

    展开全文
  • cout排序过后的ISBN编号依次为:"; for(i=1;i;i++){//依次判断1~1000这1000个桶(即编号范围在1~1000) if(a[i]==1){ //如果这个ISBN号出现过则打印出来 cout; } }/*O(M)*/ getchar(); return 0; ...
    #include<iostream>
    using namespace std;
    int main(){
    	int a[1001],n,i,t;//M=1000
    	for(i=1;i<=1000;i++){
    		a[i]=0;
    	}
    	
    	cout<<"请输入共有多少本书,即n=";
    	cin>>n;
    	cout<<"请依次输入各本书的ISBN编号:"<<endl;
    	for(i=1;i<=n;i++){//循环读入n个图书的ISBN号 
    		cin>>t;//把每一个ISBN编号读到变量t中
    		a[t]=1;//标记出现过的ISBN号 
    	}/*O(N)*/
    	
    	cout<<"排序过后的ISBN编号依次为:"<<endl;
    	for(i=1;i<=1000;i++){//依次判断1~1000这1000个桶(即编号范围在1~1000) 
    		if(a[i]==1){
    			//如果这个ISBN号出现过则打印出来
    			cout<<i<<" "; 
    		}
    	}/*O(M)*/ 
    	
    	getchar();
    	return 0;
    }
    
    /*整个算法的时间复杂度是O(N+M)*/
    

    展开全文
  • 主要介绍了Java实现对两个List快速去重排序操作,结合实例形式较为详细的分析了Java针对list的遍历、去重排序相关操作技巧与注意事项,需要的朋友可以参考下
  • 下面小编就为大家带来一篇根据list中对象的属性去重排序小结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • js数组去重排序

    千次阅读 2017-07-27 10:37:24
    第一种:  var arr=[1,8,5,6,4,2,3,8,6,7,5,3];  var res=[];  for(var i=0;i  if(res.indexOf(arr[i])==-1){  res.push(arr[i]);  res.sort();  }
    第一种:
    <script>
           var arr=[1,8,5,6,4,2,3,8,6,7,5,3];
           var res=[];
           for(var i=0;i<arr.length;i++){
             if(res.indexOf(arr[i])==-1){
                 res.push(arr[i]);
              res.sort();
             }
          }
         console.log(res);
    </script>
    第二种:
    <script>
        var arr=[1,8,5,6,4,2,3,8,6,7,5,3];
        var n={},r=[];  //n为hash表,r为临时数组
            for(var i=0;i<arr.length;i++){
              if(!n[arr[i]]){ //如果hash表中没有当前项
                 n[arr[i]]=true;   /把当前项/存入hash表
              r.push(arr[i]); //把当前项
                 r.sort();
                 r.severse();
               }
             }
       console.log(r);

    </script>



    展开全文
  • es6 去重排序

    2019-09-27 10:46:22
    var arr=[1,3,3,5,9,4,6,7]; let s=new Set(arr1); let arr = [....s]; consolo.log(arr); //打印出来的是1,3,4,5,6,7,9 转载于:https://www.cnblogs.com/zhangyongxi/p/11206691.html...

    var arr=[1,3,3,5,9,4,6,7];

    let s=new Set(arr1);

    let arr = [....s];

    consolo.log(arr);

    //打印出来的是1,3,4,5,6,7,9

    转载于:https://www.cnblogs.com/zhangyongxi/p/11206691.html

    展开全文
  • ArrayList的去重排序以及其他应用

    千次阅读 2021-07-23 16:04:50
    介绍了ArrayList集合去重的三种方式,以及排序的两种方式,以及反射获取ArrayList的容量,以及Array和ArrayList的区别。
  • 本文实例讲述了JavaScript基于对象方法实现数组去重排序操作。分享给大家供大家参考,具体如下: [removed] //用对象方法实现数组去重 Array.prototype.unique = function() { var newArr = []; for (var i =...
  • 主要介绍了JS数组扁平化、去重排序操作,结合实例形式详细分析了JS数组扁平化、去重排序等相关操作原理、实现技巧与注意事项,需要的朋友可以参考下
  • 文章目录题目: 题目: 题目要求: 明明想在学校中请一些同学一起做一项问卷调查,...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。 请你协助明明完成“去重”与排序工作。 代码: 运行结果: ...
  • 主要介绍了Python实现对文件进行单词划分并去重排序操作,涉及Python文件读取、字符串遍历、拆分、排序等相关操作技巧,需要的朋友可以参考下
  • 主要介绍了jQuery简单实现对数组去重排序操作,结合实例形式分析了jQuery中unique方法进行数组去重及sort方法排序的相关操作技巧,需要的朋友可以参考下
  • 字符串去重排序

    2021-06-05 15:47:10
    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ...meta name="viewport" content="width=device-width, initial-scale=1.0">...Do.
  • Java list集合去重排序 List集合根据时间排序(升序) /** * 根据时间排序倒序(其他排序如根据id排序也类似) * @param list */ private static void ListSort(List<Map<String, Object>> list) { ...
  • 数组去重排序

    2019-11-26 17:54:34
    数组去重排序/C++
  • 去重排序(Java)

    2021-04-03 11:58:59
    然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n 输入随机数的个数 inputArray n 个随机整数组成的数组 Return Value OutputArray 输出处理后...
  • sql如何先排序再去重

    千次阅读 2019-04-09 20:12:00
    排序了,但是没有去重 SQL2 那么我们加上去重: select distinct name from score order by score desc limit 5; 首先第一点是这个sql未必能执行。在一些数据库版本,这个sql可以被执行,在一些版本则...
  • C++ 去重排序

    2020-08-17 19:27:15
    方法:用c++中的STL的std::set函数,由于set函数底层用红黑树实现的,而红黑树是一棵平衡二叉树,所以会带有自动排序的功能 #include<iostream> #include<set> #include<ctime> using namespace...
  • 数组去重排序几种方式

    千次阅读 2020-06-30 10:53:12
    //结果为[1,2,3,4,5,6,7,8,9,10,11,12,13,14] 三、ES6数组去重排序 //通过 ES6 flat 方法将数组拉平。 //通过 ES6 Set 构造函数对数组去重; //通过 sort 方法进行排序 var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7...
  • 超简单的C++去重排序

    万次阅读 多人点赞 2018-06-09 12:49:10
    一、去重函数unique 头文件:algorithm,所以别忘了加上一句:#include &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;algorithm&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; unique的...
  • js对数组去重排序

    2019-11-07 14:57:15
    ①不是纯数字,是纯字母,那就去重后按照字母顺序表排序下。 ②不是纯数字,有字母,数字,按照数字——字母顺序,如下: Unicode编码范围如下: | 类型 | 16进制范围 | 10进制范围 | 数字 |【0x30,0x39】 | ...
  • 一、需求的目的是要求查询出考生信息根据考场号和座位号进行升序排序,但是存在同一考生参加多场考试,因此查询结果集对相同人员需要去重保持唯一 原有示例结果集 目标结果集 1、原有SQL仅通过distinct对结果...
  • 数组排列去重 题目 问题描述  输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素。 输入格式  10个整数。 输出格式  多行输出,每行一个元素。 样例输入 2 2 3 3 1 1 5 5 5 5 样例输出 1 2 3 5 ...
  • List快速去重排序

    2020-01-28 21:11:30
    list快速去重排序,使用了TreeSet(传入的对象实现Comparable或者传入比较器Comparator) package com.marui.test; import java.util.*; /** * @Auther: Little Pig * @Date: 2020/1/16 15:35 * @Description: ...
  • java list map 去重排序方法

    千次阅读 2017-06-28 11:03:45
    /** * 排序方法 * @param list * @return */ public List> compareBytime(List> list){  Collections.sort(list, new Comparator>(){  public int compare(Map o1, Map o2) {   String
  • python 给列表去重排序

    千次阅读 2019-04-11 16:18:48
    # encoding: utf8 ...给列表去重排序 ''' lis = [1,0,1,6,3,3,4,9,0,7,9,0,2,5,8] # 手写去重方法 def num_made_sort(): num_list = [] for i in lis: if i not in num_list: num_list.append(i)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,357
精华内容 41,342
关键字:

去重再排序