" />

亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java的sort的排序及使用詳解

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

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

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. 隨機(jī)排序:

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ù)沒有傳遞 默認(rèn)升序排列
    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()方法如何實(shí)現(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é)合進(jìn)行排序的。

模擬排序:

 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)文章

  • 通過xml配置SpringMVC注解DispatcherServlet初始化過程解析

    通過xml配置SpringMVC注解DispatcherServlet初始化過程解析

    這篇文章主要為大家介紹了通過xml配置SpringMVC注解DispatcherServlet初始化過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • java 8 lambda表達(dá)式中的異常處理操作

    java 8 lambda表達(dá)式中的異常處理操作

    這篇文章主要介紹了java 8 lambda表達(dá)式中的異常處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • idea hibernate jpa 生成實(shí)體類的實(shí)現(xiàn)

    idea hibernate jpa 生成實(shí)體類的實(shí)現(xiàn)

    這篇文章主要介紹了idea hibernate jpa 生成實(shí)體類的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Java中Scanner的常用方法總結(jié)(一次學(xué)懂)

    Java中Scanner的常用方法總結(jié)(一次學(xué)懂)

    這篇文章主要給大家介紹了關(guān)于Java中Scanner常用方法的相關(guān)資料,Java中的Scanner是一個用于讀取用戶輸入的類,它可以讀取各種類型的數(shù)據(jù),包括整數(shù)、浮點(diǎn)數(shù)、字符串等等,需要的朋友可以參考下
    2023-11-11
  • Java RandomAccessFile的用法詳解

    Java RandomAccessFile的用法詳解

    下面小編就為大家?guī)硪黄狫ava RandomAccessFile的用法詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 通過volatile驗(yàn)證線程之間的可見性

    通過volatile驗(yàn)證線程之間的可見性

    這篇文章主要介紹了通過volatile驗(yàn)證線程之間的可見性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • springboot前后臺數(shù)據(jù)交互的示例代碼

    springboot前后臺數(shù)據(jù)交互的示例代碼

    這篇文章主要介紹了springboot前后臺數(shù)據(jù)交互的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • idea如何關(guān)閉頁面顯示的瀏覽器圖標(biāo)

    idea如何關(guān)閉頁面顯示的瀏覽器圖標(biāo)

    這篇文章主要介紹了idea如何關(guān)閉頁面顯示的瀏覽器圖標(biāo)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java中instanceof關(guān)鍵字實(shí)例講解

    Java中instanceof關(guān)鍵字實(shí)例講解

    大家好,本篇文章主要講的是Java中instanceof關(guān)鍵字實(shí)例講解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Java實(shí)現(xiàn)商品的查找、添加、出庫、入庫操作完整案例

    Java實(shí)現(xiàn)商品的查找、添加、出庫、入庫操作完整案例

    這篇文章主要介紹了Java實(shí)現(xiàn)商品的查找、添加、出庫、入庫操作,結(jié)合完整實(shí)例形式分析了java基于面向?qū)ο蟮纳唐沸畔⑻砑?、刪除、查找等相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11

最新評論