首页 > 其他分享 >sort(大小排序、频率排序)

sort(大小排序、频率排序)

时间:2023-03-04 11:56:53浏览次数:27  
标签:sort arr 频率 length let arr1 排序

sort()

  • sort() 方法用于对数组的元素进行排序;
  • sort() 方法默认将按字母和升序将值作为字符串进行排序;

对数字进行排序

//return < 0 (保持不变)
//return > o (交换次序)
const arr1 = [3,5,1,7,4,8]
arr1.sort((a, b) => a - b)

对字母进行排序

//根据字符串Unicode码点
const arr2 = ['h','e','l','l','o']
arr2.sort()

在实际中的使用

冒泡排序

function bubbleSort(arr) {
  let len = arr.length
  for(let i = 0; i < len - 1; i++) {
    for(let j = 0; j < len -1; j++) {
      if(arr[j] > arr[j + 1]) {
        let num = arr[j]
        arr[j] = arr[j + 1]
        arr[j + 1] = num
      }
    } 
  }
  return arr
}

按数组元素出现的频率排序

//说明:此方法不适用数组元素为引用类型的情况,因为js中对象的键只能为字符串
//arr:传入的数组
//length:返回出现次数排序在前length的
//type:升序/降序
function getCount(arr,length,type) {
  let obj = {}, arr1=[], k
  for (let i = 0, len = arr.length; i < len; i++){
    k = arr[i]
    if(obj[k]) obj[k]++;
    else obj[k] = 1
  }
  for (let o in obj) {
    arr1.push({ el: 0, count: obj[o] })
  }
  arr1.sort(function (n1, n2) {
    return n2.count - n1.count
  })
  if (type === 1) {
    arr1 = arr1.reverse()
  }
  let length = length || arr1.length;
  return arr1.slice(0, length)
}

标签:sort,arr,频率,length,let,arr1,排序
From: https://www.cnblogs.com/rain111/p/17177988.html

相关文章

  • python中argsort()
    由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在python环境下进行了测试,大概了解了其相关的用处,......
  • 【总结】2023-03-01 Swap and Sort
    SwapandSort题意有一个\(1\dotsn\)的全排列\(p_1\dotsp_n\)。有\(m\)种操作,第\(i\)种操作可以交换\(p_{a_i}\)和\(p_{b_i}\)请问最多执行\(10^5\)次......
  • 西电oj 244题单词排序
    题目描述:定义一个二维字符数组str[10][20],行号表示单词序号,列号表示单词最大长度,输入一个正整数N(N≤10),表示单词数,使用函数wd_sort()完成单词的排序,按字母顺序从小到大排......
  • 如何使用 js 实现一个比较APP版本号的大小的版本号排序函数 All In One
    如何使用js实现一个比较APP版本号的大小的版本号排序函数AllInOne(......
  • c++ 五种排序方式
    第一种:冒泡排序冒泡排序遍历两次数组,时间复杂度On2,每一次用一个元素和后续其他所有元素比较,若是大小不符合预期则反转位置,具体实现代码如下:#include<iostream>#include......
  • 堆排序
    【经典算法】:堆排序 1.概述堆排序(HeapSort)就是利用堆(假设利用大顶堆)进行排序的方法。原理:将待排序的序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根结点,将......
  • mysql对一二三四五排序
    SELECTbuildingFloorsFROMConstructionCaseORDERBYFIELD(SUBSTRING(buildingFloors,1,1),'一','二','三','四','五','六','七','八','九'); ......
  • 工作频率运行在3.0 ~ 4.5 GHz的高效率GaAs HBT MMIC驱动放大器-CBG9326
    国内使用UWB高精度室内定位的行业应用产品,工作频段大部分都在3.5Ghz-6GHz低频段(Channel2(特定场景如管隧矿)和Channel5)范围,因此只能应用于煤矿、监狱等封闭的小众市场。从......
  • java-数组,冒泡排序19
    packagecom.demo.data;publicclassarr{publicstaticvoidmain(String[]args){int[]arr={11,22,33,44,999};intmax=m(arr);......
  • 快速排序
    /** *@paramarr需要排序的数组 *@paraml数组最左下标 *@paramr数组最右下标 */ publicstaticvoidquickSort(int[]arr,intl,intr){ if......