數(shù)組排序并找出元素索引
我身在何處?
先給數(shù)組排序存淫,然后找到指定的值在數(shù)組的位置,最后返回位置對(duì)應(yīng)的索引沼填。
舉例:where([1,2,3,4], 1.5) 應(yīng)該返回 1桅咆。因?yàn)?.5插入到數(shù)組[1,2,3,4]后變成[1,1.5,2,3,4],而1.5對(duì)應(yīng)的索引值就是1坞笙。
同理岩饼,where([20,3,5], 19) 應(yīng)該返回 2。因?yàn)閿?shù)組會(huì)先排序?yàn)?[3,5,20]薛夜,19插入到數(shù)組[3,5,20]后變成[3,5,19,20]籍茧,而19對(duì)應(yīng)的索引值就是2。
function where(arr, num) {
// 請把你的代碼寫在這里
arr.push(num);
arr.sort(function(a,b){
return a-b;
});
return arr.indexOf(num);
}
where([40, 60], 50);
注意:sort()
方法用就地( in-place )的算法對(duì)數(shù)組的元素進(jìn)行排序梯澜,并返回?cái)?shù)組寞冯。 sort 排序不一定是穩(wěn)定的。默認(rèn)排序順序是根據(jù)字符串Unicode碼點(diǎn)晚伙。
排序算法的穩(wěn)定性:假定在待排序的記錄序列中吮龄,存在多個(gè)具有相同的關(guān)鍵字的記錄,若經(jīng)過排序咆疗,這些記錄的相對(duì)次序保持不變漓帚,即在原序列中,ri=rj午磁,且ri在rj之前尝抖,而在排序后的序列中毡们,ri仍在rj之前,則稱這種排序算法是穩(wěn)定的昧辽;否則稱為不穩(wěn)定的漏隐。