会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
业精于勤荒于嬉,形成于思毁于随
订阅
管理
8.3.1冒泡排序
#include
"
stdafx.h
"
#include
<
iostream.h
>
#include
<
malloc.h
>
int
const
count
=
10
;
typedef
struct
{
int
key;
}
records;
typedef records list[count
+
1
];
void
BubbleSort(list
&
r)
{
bool
flag
=
1
;
//
最多需要比较n-1次
for
(
int
i
=
1
;i
<
count
-
1
;i
++
)
{
bool
flag
=
1
;
//
这里是<=count-i,需要减少一个节点,因为在循环里引用了比j大1的索引
for
(
int
j
=
1
;j
<=
count
-
i;j
++
)
{
if
(r[j].key
>
r[j
+
1
].key)
{
flag
=
0
;
int
tmp
=
r[j].key;
r[j].key
=
r[j
+
1
].key;
r[j
+
1
].key
=
tmp;
}
}
if
(flag)
{
return
;
}
}
}
void
printList(list r)
{
for
(
int
i
=
0
;i
<
count;i
++
)
{
if
(i
==
0
)
{
cout
<<
r[i
+
1
].key;
}
else
{
cout
<<
"
,
"
<<
r[i
+
1
].key;
}
}
cout
<<
endl;
}
int
main(
int
argc,
char
*
argv[])
{
list r;
for
(
int
i
=
0
;i
<
count;i
++
)
{
cout
<<
"
输入第
"
<<
i
+
1
<<
"
个主键
"
;
cin
>>
r[i
+
1
].key;
}
cout
<<
"
输入的序列为:
"
<<
endl;
printList(r);
BubbleSort(r);
cout
<<
"
冒泡排序后的序列为:
"
<<
endl;
printList(r);
return
0
;
}
一点说明:为什么在标题中要嵌入英文?原因是为了能够让国外的网友能查询到这篇文章。平常在Google上查资料的时候,经常参考国外网友的博客,帮助我解决了很多问题,所以我也想让他们能够参考我写的内容。当然文中我不可能全部译为英文,所以我尽量把代码粘全,靠代码说话吧。
posted @
2007-08-07 16:09
吴东雷
阅读(
248
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告