方法如下:
function sort() ;
var keys = ["1", "2", "3", "4"];
var result = ;
map["max"] = 999999999; // 存放每一次拍完序後的,該過程中產生的最大的元素。
for(var i=0; iif(temp < map[keys[k]])
}result[i] = temp;
map[ "max"] = temp;
}console.log(result);
}
備註:
因為是map,所以不能通過通常的排序方法,要根據key去遍歷。
外部迴圈,每一次迴圈都把該次迴圈產生的最大的元素放在map的max位置。
內部迴圈,首選判斷該元素是不是大於map中存放的上一次迴圈產生的最大的元素,然後和temp比較。
詳細說明:
原序列:3,5,6,3
i=0:
map[「max」] = 999999999
temp=-1
map中的元素依次和temp進行比較,如果比temp大且比map[「max」]小,則交換temp和該元素的值。
迴圈結束得到map[「max」]=6
i=1:
map[「max」] = 6
temp=-1
map中的元素依次和temp進行比較,如果比temp大且比map[「max」]小,則交換temp和該元素的值。
迴圈結束得到map[「max」]=5
獲取Map中元素
1.對物件的集合 collection 和鍵值對集合 map 都支援嗎?答 不支援的,因為map集合裡面沒有迭代器,凡是支援迭代器的集合他們都支援高階for,高階for是迭代器的簡寫形式 map集合裡面為什麼沒有迭代器 介面 collection他裡面有迭代器,collection介面繼承了介面 i...
棧中元素排序
棧中元素排序 題目 乙個棧中元素型別為整型,現在想將棧頂到棧底從大到小排序。要求 只能申請乙個棧,但可以申請新的變數,不能申請額外的資料結構,如何完成排序。解析 將要排序的棧記為s,申請的輔助棧記為t,在棧s上執行pop操作,彈出的元素為cur,每次彈出乙個元素時,分兩種情況 情況一 如果cur小於...
棧中元素排序
題目描述 設計乙個演算法,將棧中的元素按公升序排列。可另外借用乙個棧來實現。思路 從主棧中依次彈出棧頂元素壓入輔助棧,每當將要壓入的元素使得輔助棧中的元素不是公升序排列,就將輔助棧裡的元素重新壓入原始棧,直到輔助棧裡的元素都小於當前要壓入的元素,然後再壓入當前元素。假設當前主棧裡的元素是。過程 如下...