c++排序函数对二维数组排序_JS骚操作之数组快速排序
如果你想要對(duì)數(shù)組排序,可能會(huì)去百度去搜,于是有很多人教你用冒泡,什么二分插入排序、堆排序,如果不太懂其中的代碼意思,很難看明白。來,今天我來教大家一個(gè)騷操作。
我利用的就是JS數(shù)組的索引來排序的,大家都知道,索引就是從0開始,然后依次遞增的。好了,廢話少說,開始擼了。
我們來上完整的代碼:
var arr = [1,4,2,5,21,3,44,12];//要排序的數(shù)組。var res = [];//要返回的排序后的數(shù)組。var arr1 = [];//中間用到的過渡數(shù)組arr.forEach(a=>{arr1[a] = 1;});arr1.forEach((r,index)=>{if(r === 1){res.push(index);//通過push默認(rèn)是是升序,如果想降序可以采用unshift方法,或者在最后將數(shù)組反轉(zhuǎn)一下即可。}})console.log(res);arr.forEach(a=>{//這一步很關(guān)鍵,我們把要排序的數(shù)組的每一項(xiàng)當(dāng)作了中間過渡數(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í)候中間過渡數(shù)組arr1就有數(shù)據(jù)了,但是這個(gè)數(shù)組中有很多undefined,這時(shí)候我們?cè)僮鲎詈蟮呐懦秃昧恕?/p>
寫在最后:有人可能會(huì)提出來,如果數(shù)組中有重復(fù)項(xiàng),那這種排序是不是不行了,當(dāng)然可以, 做下處理,把重復(fù)的先拿到,重復(fù)了幾次,然后在最后的結(jié)果數(shù)組中通過splice(index,0,item);對(duì)數(shù)組進(jìn)行插入操作即可。
技術(shù)總結(jié):
總結(jié)
以上是生活随笔為你收集整理的c++排序函数对二维数组排序_JS骚操作之数组快速排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: system函数阻塞_Completab
- 下一篇: c语言最长公共子序列_LCS(最长公共子