日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

c++排序函数对二维数组排序_JS骚操作之数组快速排序

發(fā)布時(shí)間:2025/3/15 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++排序函数对二维数组排序_JS骚操作之数组快速排序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如果你想要對(duì)數(shù)組排序,可能會(huì)去百度去搜,于是有很多人教你用冒泡,什么二分插入排序、堆排序,如果不太懂其中的代碼意思,很難看明白。來(lái),今天我來(lái)教大家一個(gè)騷操作。

我利用的就是JS數(shù)組的索引來(lái)排序的,大家都知道,索引就是從0開(kāi)始,然后依次遞增的。好了,廢話少說(shuō),開(kāi)始擼了。

我們來(lái)上完整的代碼:

var arr = [1,4,2,5,21,3,44,12];//要排序的數(shù)組。var res = [];//要返回的排序后的數(shù)組。var arr1 = [];//中間用到的過(guò)渡數(shù)組arr.forEach(a=>{arr1[a] = 1;});arr1.forEach((r,index)=>{if(r === 1){res.push(index);//通過(guò)push默認(rèn)是是升序,如果想降序可以采用unshift方法,或者在最后將數(shù)組反轉(zhuǎn)一下即可。}})console.log(res);

arr.forEach(a=>{//這一步很關(guān)鍵,我們把要排序的數(shù)組的每一項(xiàng)當(dāng)作了中間過(guò)渡數(shù)組的索引,并賦值為1(這里不一定要是1,給一個(gè)特定的值就行)

arr1[a] = 1;

});

這時(shí)候arr1 的結(jié)果為: [empty, 1, 1, 1, 1, empty × 7, 1, empty × 8, 1, empty × 22, 1, empty × 10, 1]

這時(shí)候中間過(guò)渡數(shù)組arr1就有數(shù)據(jù)了,但是這個(gè)數(shù)組中有很多undefined,這時(shí)候我們?cè)僮鲎詈蟮呐懦秃昧恕?/p>

寫(xiě)在最后:有人可能會(huì)提出來(lái),如果數(shù)組中有重復(fù)項(xiàng),那這種排序是不是不行了,當(dāng)然可以, 做下處理,把重復(fù)的先拿到,重復(fù)了幾次,然后在最后的結(jié)果數(shù)組中通過(guò)splice(index,0,item);對(duì)數(shù)組進(jìn)行插入操作即可。

技術(shù)總結(jié):

  • 這個(gè)就是巧用了數(shù)組的索引,默認(rèn)就是一個(gè)從小到大的排序的特性。這種方法簡(jiǎn)單易懂。
  • 數(shù)組的基本方法的使用,像forEach push unshift reverse splice(這個(gè)splice可以做刪除,插入,修改) 等。
  • 與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

    總結(jié)

    以上是生活随笔為你收集整理的c++排序函数对二维数组排序_JS骚操作之数组快速排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。