作者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)
1F:推 CaptainWill:看到第一页我吓到了= = 想说有必要这麽生气... 03/17 01:12
2F:推 Arashinoon:先推内文 凤狼遇到什麽事情这麽愤怒?? 03/17 01:13
3F:推 CaptainWill:揪~~~~~竟是为什麽呢? 03/17 01:14
4F:嘘 dosomethnig:花花 说好的头嘘在这 03/17 01:14
5F:推 suan710:凤狼大你也敢嘘? 03/17 01:14
6F:→ CaptainWill:峻毅资科一哥馁 03/17 01:15
7F:→ suan710:也是啦 长得高又帅身材又好又会打篮球又有车又有........ 03/17 01:17
8F:→ game0416:垃圾 03/17 01:17
9F:→ CaptainWill: 女 03/17 01:17
10F:嘘 dosomethnig:叶酸 哩喜爹靠= = 03/17 01:20
11F:推 suan710: __友 03/17 01:20
12F:→ CaptainWill: 碰 03/17 01:22
13F:→ Tuko: 朋 03/17 01:22
14F:嘘 dosomethnig: 碰 车友 03/17 01:23
15F:嘘 CaptainWill: 嘘凸口! 03/17 01:23
16F:→ Tuko:楼上嘘我? 03/17 01:24
17F:→ suan710:我嘘楼上 03/17 01:24
18F:推 CaptainWill:帮凤郎推回来0.0 03/17 01:25
19F:嘘 dosomethnig:睡前一嘘 03/17 01:28
20F:推 CaptainWill:楼上真早睡 03/17 01:30
21F:推 Tuko:楼上&楼下请早睡 03/17 01:36
22F:嘘 CaptainWill:做你的梦 XD 03/17 01:37
23F:→ Tuko:谢谢楼上 03/17 01:39
24F:推 CaptainWill:别客气 晚安XD 03/17 01:40
25F:嘘 h129875230:资科一哥首嘘!!小弟我双腿又一软了 不愧是一哥 03/17 03:13
26F:→ godhand0629:同学嘛 大家交交朋友 03/17 19:58
27F:推 Arashinoon:推楼上 大家交交朋友 03/18 00:16