" />

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

Java的sort的排序及使用詳解

 更新時間:2022年02月07日 15:01:24   作者:Panax  
這篇文章主要為大家詳細介紹了Java的sort的排序及使用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下 ,希望您能夠多多關(guān)注

sort() 方法在適當?shù)奈恢脤?shù)組的元素進行排序,并返回數(shù)組。數(shù)組會按照字符的Unicode進行排序(把數(shù)組里面當成字符串處理)

1.按升序排列:

var arr=[1,11,2,22,5,4,0];
            arr.sort(
                function(n1,n2){
                    return n1-n2;
                });
alert(arr);//[0,1,2,4,5,11,22]

2. 隨機排序:

var arr=[1,11,2,22,5,4,0];
            arr.sort(
                function(n1,n2){
                    return Math.random()-0.5;
                });
 alert(arr);

3.按降序排列:

var arr=[1,11,2,22,5,4,0];
            arr.sort(
                function(n1,n2){
                    return n2-n1;
                });
alert(arr);

4.根據(jù)參數(shù)屬性值排序

sort方法接收一個函數(shù)作為參數(shù),這里嵌套一層函數(shù)用來接收對象屬性名,其他部分代碼與正常使用sort方法相同

var arr = [
    {name:'zopp',age:0},
    {name:'gpp',age:18},
    {name:'yjj',age:8}
];

function compare(property){
    return function(a,b){
        var value1 = a[property];
        var value2 = b[property];
        return value1 - value2;
    }
}
console.log(arr.sort(compare('age')))

5. 根據(jù)參數(shù)不同,來確定是升序排列,還是降序排序

sortBy: function(attr,rev){
    //第二個參數(shù)沒有傳遞 默認升序排列
    if(rev ==  undefined){
        rev = 1;
    }else{
        rev = (rev) ? 1 : -1;
    }
    return function(a,b){
        a = a[attr];
        b = b[attr];
        if(a < b){
            return rev * -1;
        }
        if(a > b){
            return rev * 1;
        }
        return 0;
    }
}
newArray.sort(sortBy('number',false))

V8 引擎 sort 函數(shù)只給出了兩種排序 InsertionSort 和 QuickSort,數(shù)量小于10的數(shù)組使用 InsertionSort,比10大的數(shù)組則使用 QuickSort。

原理:sort()方法如何實現(xiàn)排序

第一次1和8比較,1<8,不需要調(diào)整位置。 ??

  第二次8和3比較,8>3,需要調(diào)整位置。但是這里沒有交換位置,僅僅是8覆蓋了3位置。這里就可以推斷出不是單純的使用了冒泡算法。
??第三是1和3比較,1<3,3替換了8的位置。什么鬼,幾個意思???看到這里我也是表示不懂呀。那就繼續(xù)往下看咯。 ??

  第四是8和5比較,8>5,又僅僅是覆蓋,沒有交換位置。還是不懂,繼續(xù)往下!
??第五是3和5比較,3<5,5替換了8的位置,不懂,繼續(xù)往下! ??

  第六是8和-1比較,8>-1, 還僅僅是覆蓋,繼續(xù)往下!
??第七、八、九次,-1依次和5,3,1做了比較,并且5,3,1都移動了一次位置。

我們得出了結(jié)論:sort()方法是使用的冒泡和插入兩種方式結(jié)合進行排序的。

模擬排序:

 var arr=[32,12,4,20,1,54,56,6,14];
            function findMinIndex(arr,start){
                var iMin=arr[start];
                var iMinIndex=start;
                for(var i=start;i<arr.length;i++){
                    if(iMin>arr[i]){
                        iMin=arr[i];
                        iMinIndex=i;
                    }
                }
                return iMinIndex;
            }
            for(var i=0;i<arr.length;i++){
                var n=findMinIndex(arr,i);
                var tem;
                tem=arr[n];
                arr[n]=arr[i];
                arr[i]=tem;
            }
alert(arr);

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!     

相關(guān)文章

  • Spring-MVC異步請求之Servlet異步處理

    Spring-MVC異步請求之Servlet異步處理

    這篇文章主要介紹了Spring-MVC異步請求之Servlet異步處理,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Spring Boot2發(fā)布調(diào)用REST服務實現(xiàn)方法

    Spring Boot2發(fā)布調(diào)用REST服務實現(xiàn)方法

    這篇文章主要介紹了Spring Boot2發(fā)布調(diào)用REST服務實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java 抽象類特點總結(jié)

    Java 抽象類特點總結(jié)

    在面向?qū)ο蟮母拍钪校械膶ο蠖际峭ㄟ^類來描繪的,但是反過來,并不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類
    2021-10-10
  • spring通過filter,Interceptor統(tǒng)一處理ResponseBody的返回值操作

    spring通過filter,Interceptor統(tǒng)一處理ResponseBody的返回值操作

    這篇文章主要介紹了spring通過filter,Interceptor統(tǒng)一處理ResponseBody的返回值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • SpringBoot使用jsoup爬取HTML的方法

    SpringBoot使用jsoup爬取HTML的方法

    jsoup 是一款 Java 的 HTML 解析器,它提供了一套非常便利的 API,可通過 DOM、CSS 通過類似于 JQuery 的操作方法來取出和操作數(shù)據(jù),這篇文章主要介紹了SpringBoot使用jsoup爬取HTML,需要的朋友可以參考下
    2024-02-02
  • SpringBoot+Redis實現(xiàn)不重復消費的隊列的示例代碼

    SpringBoot+Redis實現(xiàn)不重復消費的隊列的示例代碼

    本文主要介紹了SpringBoot+Redis實現(xiàn)不重復消費的隊列的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • Spring Boot與Spark、Cassandra系統(tǒng)集成開發(fā)示例

    Spring Boot與Spark、Cassandra系統(tǒng)集成開發(fā)示例

    本文演示以Spark作為分析引擎,Cassandra作為數(shù)據(jù)存儲,而使用Spring Boot來開發(fā)驅(qū)動程序的示例。對spring boot 與spark cassandra集成開發(fā)示例代碼感興趣的朋友跟著腳本之家小編一起學習吧
    2018-02-02
  • SpringBoot詳解Banner的使用

    SpringBoot詳解Banner的使用

    這篇文章主要介紹了超個性修改SpringBoot項目的啟動banner的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Jenkins安裝多個jdk版本并在項目中選擇對應jdk版本

    Jenkins安裝多個jdk版本并在項目中選擇對應jdk版本

    在使用jenkins構(gòu)建項目時會遇到不同的job需要配置不同版本的jdk,下面這篇文章主要給大家介紹了關(guān)于Jenkins安裝多個jdk版本并在項目中選擇對應jdk版本的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Java如何實現(xiàn)單鏈表的增刪改查

    Java如何實現(xiàn)單鏈表的增刪改查

    這篇文章主要給大家介紹了關(guān)于Java如何實現(xiàn)單鏈表的增刪改查的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04

最新評論

宜宾市| 怀化市| 德州市| 横山县| 天门市| 清远市| 卫辉市| 赣州市| 和龙市| 建德市| 曲沃县| 科尔| 泾源县| 旬阳县| 秭归县| 临泉县| 锡林浩特市| 湛江市| 嘉祥县| 扬中市| 陕西省| 大渡口区| 沈丘县| 洪洞县| 衡南县| 成安县| 佛教| 上蔡县| 丰原市| 龙州县| 密山市| 开阳县| 右玉县| 中方县| 香港 | 长沙市| 包头市| 南雄市| 曲松县| 莲花县| 浠水县|