最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何基于js及java分析并封裝排序算法

 更新時(shí)間:2020年07月23日 14:42:29   作者:Tom最好的朋友是Jerry  
這篇文章主要介紹了如何基于js及java分析并封裝排序算法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

前言

  本次來分享一下排序的api底層的邏輯,這次用js模擬,java的邏輯也是差不多。

  先看封裝好的api例子:

  js的sort排序

  java的compareTo排序

自己模擬的代碼(JS)

function compareTo(a,b){
 return a-b;//a-b為從下到大 b-a為從大到小
}

Object.prototype.newSort = function(Func){
 const flag = Func(1,0);
 const $this = this;
 // 注意:上面for循環(huán)的$this.length-1是因?yàn)檫@里只需要走到倒數(shù)第二個(gè)位置即可,而下面的for循環(huán)$this.length-1是數(shù)組下標(biāo)對(duì)應(yīng)的最后一個(gè)值
 for(let i = 0; i < $this.length-1; i++){
  for(let j = $this.length-1; j > i; j--){
   // 思路就是從數(shù)組第一個(gè)開始與倒數(shù)第一個(gè)向上直到數(shù)組第二個(gè)的過程中一直比較,如果有比第一個(gè)小的,就交換,然后第二次循環(huán)就只需要第二個(gè)與倒數(shù)第二個(gè)開始比較,以此類推
   const compare = flag > 0 ? $this[i] > $this[j] : $this[i] < $this[j];
   if(compare){//滿足條件就進(jìn)行位運(yùn)算來交換位置
    $this[i] = $this[i] ^ $this[j];
    $this[j] = $this[i] ^ $this[j];
    $this[i] = $this[i] ^ $this[j];
   }
  }
 }
}

var array = [2,1,5,7,3,4,9,8,6,4,5,2,1];
console.log(array.newSort(compareTo));//[ 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 7, 8, 9 ]

源代碼

  js源代碼

  java源代碼

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot整合ElasticSearch實(shí)現(xiàn)多版本兼容的方法詳解

    Spring Boot整合ElasticSearch實(shí)現(xiàn)多版本兼容的方法詳解

    簡(jiǎn)單說,ElasticSearch(簡(jiǎn)稱 ES)是搜索引擎,是結(jié)構(gòu)化數(shù)據(jù)的分布式搜索引擎。下面這篇文章主要給大家介紹了關(guān)于Spring Boot整合ElasticSearch實(shí)現(xiàn)多版本兼容的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-05-05
  • Spring Security中的Servlet過濾器體系代碼分析

    Spring Security中的Servlet過濾器體系代碼分析

    這篇文章主要介紹了Spring Security中的Servlet過濾器體系,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Jackson庫進(jìn)行JSON?序列化時(shí)遇到了無限遞歸(Infinite?Recursion)的問題及解決方案

    Jackson庫進(jìn)行JSON?序列化時(shí)遇到了無限遞歸(Infinite?Recursion)的問題及解決方案

    使用Jackson庫進(jìn)行JSON序列化時(shí)遇到了無限遞歸(Infinite?Recursion)問題,這是因?yàn)閮蓚€(gè)實(shí)體類ComPointQuotaEntity和?ComPointEntity之間存在雙向關(guān)聯(lián)point和pointQuota相互引用,本文給大家介紹解決方案,感興趣的朋友一起看看吧
    2025-03-03
  • Spring自定義注解實(shí)現(xiàn)接口版本管理

    Spring自定義注解實(shí)現(xiàn)接口版本管理

    這篇文章主要介紹了Spring自定義注解實(shí)現(xiàn)接口版本管理,RequestMappingHandlerMapping類是與 @RequestMapping相關(guān)的,它定義映射的規(guī)則,即滿足怎樣的條件則映射到那個(gè)接口上,需要的朋友可以參考下
    2023-11-11
  • idea中不用git解除關(guān)聯(lián)的方式

    idea中不用git解除關(guān)聯(lián)的方式

    IntelliJ?IDEA是一款高效的Java編程環(huán)境,提供智能編碼輔助、J2EE、Ant等集成,支持本地和遠(yuǎn)程調(diào)試,本文講述了如何在IDEA中解除版本控制和刪除.git文件夾,幫助開發(fā)者更好地管理項(xiàng)目設(shè)置和提升開發(fā)效率
    2024-10-10
  • 如何利用Java獲取當(dāng)天的開始和結(jié)束時(shí)間

    如何利用Java獲取當(dāng)天的開始和結(jié)束時(shí)間

    這篇文章主要介紹了如何使用Java?8的LocalDate和LocalDateTime類獲取指定日期的開始和結(jié)束時(shí)間,展示了如何通過這些類進(jìn)行日期和時(shí)間的處理,從而簡(jiǎn)化了日期時(shí)間操作,需要的朋友可以參考下
    2025-02-02
  • 解決springboot遇到autowire注入為null的問題

    解決springboot遇到autowire注入為null的問題

    這篇文章主要介紹了解決springboot遇到autowire注入為null的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 全面解析Spring Security 過濾器鏈的機(jī)制和特性

    全面解析Spring Security 過濾器鏈的機(jī)制和特性

    這篇文章主要介紹了Spring Security 過濾器鏈的機(jī)制和特性,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Intellij IDEA 閱讀源碼的 4 個(gè)絕技(必看)

    Intellij IDEA 閱讀源碼的 4 個(gè)絕技(必看)

    今天小編給大家分享Intellij IDEA 閱讀源碼的 4 個(gè)絕技,熟練的運(yùn)用 IDEA 中各個(gè)小技巧,讓閱讀跟蹤源碼變得更輕松,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-04-04
  • Java 生成圖片驗(yàn)證碼3種方法(字母、加減乘除、中文)

    Java 生成圖片驗(yàn)證碼3種方法(字母、加減乘除、中文)

    這篇文章主要介紹了Java 生成圖片驗(yàn)證碼3種方法(字母、加減乘除、中文),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評(píng)論

广德县| 永昌县| 收藏| 北宁市| 宁都县| 白沙| 喀喇| 舟山市| 额尔古纳市| 秀山| 蓝田县| 牙克石市| 丰镇市| 米泉市| 木里| 凯里市| 巫溪县| 莱阳市| 集贤县| 连山| 军事| 香河县| 凯里市| 无为县| 崇文区| 静海县| 株洲市| 靖西县| 洞口县| 长沙市| 桐乡市| 宁强县| 巩义市| 泰顺县| 屏东县| 西畴县| 北安市| 崇信县| 阳新县| 怀宁县| 古蔺县|