演算法 1 棧排序

2021-10-02 10:43:51 字數 2147 閱讀 3492

完整示例**如下:

auto是來自c++11中的**哦

示例**1

#include

#include

#include

using

namespace std;

stack<

int>

sorting

(stack<

int>);

intmain()

stack<

int> result =

sorting

(mystack)

; vector<

int> answer;

while

(!result.

empty()

)for

(auto i = answer.

rbegin()

; i != answer.

rend()

;++i)

return0;

}/*mystack:輸入棧,棧中的所有元素即是待排序的元素

返回值:輸出棧,即排序後的序列,滿足從棧底到棧頂是公升序

*/stack<

int>

sorting

(stack<

int> mystack)

int tmp = mystack.

top();

// tmp 記錄的是下乙個要插入到result中的元素

mystack.

pop();

while

(!mystack.

empty()

||(!result.

empty()

&& result.

top(

)> tmp)

)else

} result.

push

(tmp)

;return result;

}

示例**2

#include

#include

#include

using

namespace std;

stack<

int>

sorting

(stack<

int>);

intmain()

cout << mystack.

size()

<< endl;

stack<

int> result =

sorting

(mystack)

;int answer[5]

;// vectoranswer;

// while (!result.empty())

// // for (auto i = answer.rbegin(); i != answer.rend(); ++i)

// cout << result.

size()

;for

(int i =

0; i < result.

size()

;++i)

cout << endl;

cout << answer[1]

<< endl;

return0;

}/*mystack:輸入棧,棧中的所有元素即是待排序的元素

返回值:輸出棧,即排序後的序列,滿足從棧底到棧頂是公升序

*/stack<

int>

sorting

(stack<

int> mystack)

int tmp = mystack.

top();

// tmp 記錄的是下乙個要插入到result中的元素

mystack.

pop();

while

(!mystack.

empty()

||(!result.

empty()

&& result.

top(

)> tmp)

)else

} result.

push

(tmp)

;return result;

}

備註存在乙個問題待解決。

排序 排序演算法1

所謂氣泡排序就是,一組資料,以遞增的順序來說明,從第乙個數data 0 開始,依次和後面的資料比較大小,如果data 0 大於當前位置上的數就和這個數交換位置並繼續和後面的數相比,如果遇到比自己大的數了,就不交換 下一次開始的位置是data 1 然後依次往後推。void myswap int num...

排序演算法 1 選擇排序演算法

這篇部落格分為兩個部分 選擇排序演算法基本思想 實現與解析 由於這個排序演算法比較簡單,因此這篇博文就不做過多解釋了 一.選擇排序演算法基本思想 1 選擇排序 小到大排序 1.遍歷所有未排序的元素 找到最小的那個元素 2.將這個元素與未排序序列的第乙個元素交換位置 3.當剩下乙個元素時 排序結束 o...

排序演算法 1

二 高階排序演算法 高階排序演算法中我們將只介紹這一種,同時也是目前我所知道 我看過的資料中 的最快的。它的工作看起來仍然象乙個二叉樹。首先我們選擇乙個中間值middle程式中我們使用陣列中間值,然後 把比它小的放在左邊,大的放在右邊 具體的實現是從兩邊找,找到一對後交換 然後對兩邊分別使 用這個過...