#include#includeusing namespace std;
/*通過使用兩個棧,來實現插入排序
result 排好序的棧
randomstack 隨機生成的亂序的棧
①彈出亂序的棧頂元素,賦值給tmp後並pop()刪除
②若result棧為空或者result棧頂元素<=tmp,把tmp壓入result棧,更新tmp;
若result棧不為空且result棧頂元素大於tmp,則把大於tmp的元素依次
pop()到randomstack棧,直至result棧為空或者result棧頂元素<=tmp,
把tmp壓入result棧,更新tmp
*/stackinsertsorting(stackrandomstack)
int tem = randomstack.top();//將亂序的棧頂元素傳給tem後,並刪除
randomstack.pop();
while (!randomstack.empty() ||tems;
s.push(1);
s.push(100);
s.push(30);
s.push(20);
s.push(10);
s.push(111);
s.push(2);
s.push(0);
s.push(60);
s.push(10);
cout << "排序後\n";
stackr;
r = insertsorting(s);
while (!r.empty())
system("pause");
return 1;
}
在這裡插入**片
用兩個棧(C 實現插入排序
用棧實現插入排序時,我們先將存放該資料的棧排序到另乙個棧中,最後在將另外乙個棧的內容倒放到當前棧中。圖如下 實現 pragma once template class astack astack destructor void clear reinitialize void push const e...
插入排序C
變數 i 1.代表待插入數字的下標 preindex.代表前乙個元素的下標 length.代表陣列的長度 排序過程 arr 0 跳過,從arr 1 開始,每乙個數都和它前面的數字比較。while iarr i 那麼前大後小,亂序 arr preindex 1 current i include us...
c 插入排序
從整個待排序列中選出乙個元素插入到已經有序的子串行中去,得到乙個有序的 元素加一的子串行,直到整個序列的待插入元素為0,則整個序列全部有序。在實際的演算法中,我們經常選擇序列的第乙個元素作為有序序列 因為乙個元素肯定是有序的 我們逐漸將後面的元素插入到前面的有序序列中,直到整個序列有序。簡單插入排序...