老实讲,自己算法水平就是个战五渣,大二数据结构学的还行,但是过了一学期也记忆模糊,加上从来没有接触过算法训练,而且下学期的算法课……
种种原因促使我得靠假期恶补下自己的算法水平,算法还是用c++写吧,java总觉得怪怪的,类似于拿着叉子吃面?也算是个人偏见吧==
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#include<iostream> #include<stack> #include<string> using namespace std;
static const int SIZE = 10;
stack<int> insertSort(int* random){
stack<int> R ; stack<int> S ;
for(int i ;i<SIZE;i++){ R.push(random[i]); } int t = R.top();R.pop();
while(!R.empty() || (!S.empty() && t < S.top())){ if(S.empty()||S.top() <= t){ S.push(t); t = R.top(); R.pop(); }else{ R.push(S.top());S.pop(); } } S.push(t); return S; } int main(){ int random[SIZE] = {5,7,6,9,8,1,0,3,2,4}; stack<int> T = insertSort(random); while(!T.empty()){ cout << T.top()<<" "; T.pop(); } }
|