作者game0416 (鳳狼)
看板NTUE-CS102
標題Re: [閒聊] 程設作業
時間Wed Mar 17 01:07:30 2010
垃圾
--
先不論作業四的佇列,或作業五鏈結做排序
先看什麼是插入排序法..就作業五用的排序方法
拿過去一份表格來用...用陣列寫出這個插排...從小排到大
這是
int a[
10],一份未被建置的陣列
┌—┬—┬—┬—┬—┬—┬—┬—┬—┬—┐
|0|1|2|3|4|5|6|7|8|9|
├—┼—┼—┼—┼—┼—┼—┼—┼—┼—┤
|?|?|?|?|?|?|?|?|?|?|
└—┴—┴—┴—┴—┴—┴—┴—┴—┴—┘
這裡是再來的輸入假設順序--> 1 2 8 4 6 9 0 7 5 3
首先,擺入1
┌—┬—┬—┬—┬—┬—┬—┬—┬—┬—┐
|0|1|2|3|4|5|6|7|8|9|
├—┼—┼—┼—┼—┼—┼—┼—┼—┼—┤
|1|?|?|?|?|?|?|?|?|?|
└—┴—┴—┴—┴—┴—┴—┴—┴—┴—┘
--
再來擺2跟8,因為比1大,所以直接接著排在後面沒問題
┌—┬—┬—┬—┬—┬—┬—┬—┬—┬—┐
|0|1|2|3|4|5|6|7|8|9|
├—┼—┼—┼—┼—┼—┼—┼—┼—┼—┤
|1|2|8|?|?|?|?|?|?|?|
└—┴—┴—┴—┴—┴—┴—┴—┴—┴—┘
然後遇到4...這時候照順序一個一個找
a[
0]<4 ,a[
1]<4,a[
2]>4 → 要把四放到a[
2] → 把a[
2]清出來
所以說,先把8往後推一格變成
┌—┬—┬—┬—┬—┬—┬—┬—┬—┬—┐
|0|1|2|3|4|5|6|7|8|9|
├—┼—┼—┼—┼—┼—┼—┼—┼—┼—┤
|1|2|8|8|?|?|?|?|?|?|
└—┴—┴—┴—┴—┴—┴—┴—┴—┴—┘
再把4放進去
┌—┬—┬—┬—┬—┬—┬—┬—┬—┬—┐
|0|1|2|3|4|5|6|7|8|9|
├—┼—┼—┼—┼—┼—┼—┼—┼—┼—┤
|1|2|4|8|?|?|?|?|?|?|
└—┴—┴—┴—┴—┴—┴—┴—┴—┴—┘
--
以此類推...遇到6就先變成
┌—┬—┬—┬—┬—┬—┬—┬—┬—┬—┐
|0|1|2|3|4|5|6|7|8|9|
├—┼—┼—┼—┼—┼—┼—┼—┼—┼—┤
|1|2|4|8|8|?|?|?|?|?|
└—┴—┴—┴—┴—┴—┴—┴—┴—┴—┘
↓↓↓
┌—┬—┬—┬—┬—┬—┬—┬—┬—┬—┐
|0|1|2|3|4|5|6|7|8|9|
├—┼—┼—┼—┼—┼—┼—┼—┼—┼—┤
|1|2|4|6|8|?|?|?|?|?|
└—┴—┴—┴—┴—┴—┴—┴—┴—┴—┘
其次9就直接照順序檢查後發現都沒有比它大的,所以放最末端
┌—┬—┬—┬—┬—┬—┬—┬—┬—┬—┐
|0|1|2|3|4|5|6|7|8|9|
├—┼—┼—┼—┼—┼—┼—┼—┼—┼—┤
|1|2|4|6|8|9|?|?|?|?|
└—┴—┴—┴—┴—┴—┴—┴—┴—┴—┘
--
這個0嘛..因為發現a[
0]就比0大,所以把後面每一個都往後推
┌—┬—┬—┬—┬—┬—┬—┬—┬—┬—┐
|0|1|2|3|4|5|6|7|8|9|
├—┼—┼—┼—┼—┼—┼—┼—┼—┼—┤
|1|1|2|4|6|8|9|?|?|?|
└—┴—┴—┴—┴—┴—┴—┴—┴—┴—┘
再置入
┌—┬—┬—┬—┬—┬—┬—┬—┬—┬—┐
|0|1|2|3|4|5|6|7|8|9|
├—┼—┼—┼—┼—┼—┼—┼—┼—┼—┤
|0|1|2|4|6|8|9|?|?|?|
└—┴—┴—┴—┴—┴—┴—┴—┴—┴—┘
以後類推,插入排序即在輸入過程間就進行排序
原則上能比泡排來的快這樣
以下一個範例...無限輸入到80個滿..沒另外設安全措施、限定從0到int最大範圍正整數
--
int main(){
int line[
80],input,end=
0;
for (
int i=
0;i<
80;i++) line[i]=-
1;
while (cin >>input){
system(
"cls");
if (input<
0)
break;
for (
int i=
0;i<=end;i++){
if (input>line[i]){
for (
int j=end+
1;j>=i;j--){
line[j]=line[j-1];
}
line[i]=input;
break;
}
}
for (
int i=
0;i<=end;i++)
if (line[i]<
0) break;
else cout <<i <<'\t' <<line[i] <<'\n';
end++;
}
}
--
鏈結部份明後天有時間再說
--
紅白本命
○楽園の巫女
博麗 霊夢 職業:博麗神社の巫女さん
Hakurei Reimu 能力:主に空を飛ぶ程度の能力
@東方project系列
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.114.76.199
※ 編輯: game0416 來自: 58.114.76.199 (03/17 01:07)
推 CaptainWill:看到第一頁我嚇到了= = 想說有必要這麼生氣... 03/17 01:12
推 Arashinoon:先推內文 鳳狼遇到什麼事情這麼憤怒?? 03/17 01:13
推 CaptainWill:揪~~~~~竟是為什麼呢? 03/17 01:14
噓 dosomethnig:花花 說好的頭噓在這 03/17 01:14
推 suan710:鳳狼大你也敢噓? 03/17 01:14
→ CaptainWill:峻毅資科一哥餒 03/17 01:15
→ suan710:也是啦 長得高又帥身材又好又會打籃球又有車又有........ 03/17 01:17
→ game0416:垃圾 03/17 01:17
→ CaptainWill: 女 03/17 01:17
噓 dosomethnig:葉酸 哩喜爹靠= = 03/17 01:20
推 suan710: __友 03/17 01:20
→ CaptainWill: 碰 03/17 01:22
→ Tuko: 朋 03/17 01:22
噓 dosomethnig: 碰 車友 03/17 01:23
噓 CaptainWill: 噓凸口! 03/17 01:23
→ Tuko:樓上噓我? 03/17 01:24
→ suan710:我噓樓上 03/17 01:24
推 CaptainWill:幫鳳郎推回來0.0 03/17 01:25
噓 dosomethnig:睡前一噓 03/17 01:28
推 CaptainWill:樓上真早睡 03/17 01:30
推 Tuko:樓上&樓下請早睡 03/17 01:36
噓 CaptainWill:做你的夢 XD 03/17 01:37
→ Tuko:謝謝樓上 03/17 01:39
推 CaptainWill:別客氣 晚安XD 03/17 01:40
噓 h129875230:資科一哥首噓!!小弟我雙腿又一軟了 不愧是一哥 03/17 03:13
→ godhand0629:同學嘛 大家交交朋友 03/17 19:58
推 Arashinoon:推樓上 大家交交朋友 03/18 00:16