顯示每個交換發生後的陣列

2021-07-25 16:12:20 字數 1377 閱讀 5757

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 ...