123
4567
891011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
#include // for std::swap, use instead if c++11
#include int main();
// step through each element of the array
for (int startindex = 0; startindex < length; ++startindex)
// swap our start element with our smallest element
std::swap(array[startindex], array[smallestindex]);
}// now print our sorted array as proof it works
for (int index = 0; index < length; ++index)
std::cout << array[index] << ' ';
return 0;
該演算法最令人迷惑的部分是另乙個迴圈內的迴圈(稱為巢狀迴圈).。外環(指數)遍歷每個元素乙個接乙個。每一次迭代中的外環、內環(currentindex)是用來在剩下的陣列中找到最小的元素(從startindex + 1)。smallestindex跟蹤由內環發現最小的元素的索引。然後smallestindex是交換的字元。最後,外環(指數)提出的乙個元素,和重複的過程。
排序名稱使用相同的演算法。只需改變陣列的型別從int到std::string,並用適當的值初始化。
測驗1)手動顯示如何選擇排序工作在下列陣列:{ 30,60,20,50,40,10。顯示每個交換發生後的陣列。
2)重寫上面的選擇排序**按降序排序(最大數量優先)。雖然這似乎很複雜,但實際上卻是出奇的簡單。
3)這將是困難的,所以把你的遊戲臉。
另一種簡單的排序叫做「氣泡排序」。氣泡排序是通過比較相鄰的元素對,在滿足條件時交換它們,使元素「冒泡」到陣列的末端.。雖然有相當多的方法來優化的氣泡排序,這個測驗我們就堅持用未優化的版本在這裡因為它是簡單的。
未經優化的氣泡排序執行以下步驟來從最小到最大陣列排序:
比較陣列元素0與陣列元素1。如果元素0較大,用元素1交換它。
b)現在對元素1和2,以及隨後的一對元素做同樣的處理,直到你擊中陣列的末端.。此時,陣列中的最後乙個元素將被排序.。
重複前兩個步驟,直到陣列被排序。
根據上面的規則編寫冒泡**對下面的陣列進行排序:
history顯示每個命令的執行時間
大家都非常熟悉history命令,有時候在回看執行歷史時無法追溯每個命令的執行時間。因此,我們需要想個辦法給每個歷史命令新增乙個執行時間。然後檢查修改的配置是否生效。從下圖可以看到,每個執行的歷史命令前面都帶有時間戳。為了讓所有其他使用者也都能看到這個效果,可以修改 etc bashrc檔案。roo...
在ECSHOP商品列表頁顯示每個商品的品牌
1 首先修改 category.php 檔案將 sql select g.goods id,g.goods name,g.goods name style,g.market price,g.is new,g.is best,g.is hot,g.shop price as org price,修改為...
MFC操作 控制項顯示及資料交換
函式作用 乙個控制項有時需要顯示,有時需要隱藏。引數 true 顯示該控制項 false 隱藏該控制項 偽 如下 if condition 滿足條件則顯示該控制項 getdlgitem idc static1 showwindow true else 不滿足條件則隱藏該控制項 getdlgitem ...