Chinaunix首页
|
论坛
|
博客
博文
博主
LVah的ChinaUnix博客
4月28日14:30-20:30机房服务器迁移,暂停博客使用
9/30日 14:00 -10/4日 08:00暂时无法发布内容!
9/30日 14:00 -10/4日 08:00暂时无法发布内容!
首页
|
博文目录
|
关于我
LVah
博客访问: 9182
博文数量: 2
博客积分: 0
博客等级: 民兵
技术积分: 30
用 户 组: 普通用户
注册时间: 2015-05-10 22:07
文章分类
全部博文
(2)
C语言
(2)
未分配的博文
(0)
文章存档
2015年
(2)
2015年09月
(2)
我的朋友
最近访客
推荐博文
·
oracle,mysql范围越界的选择...
·
NCCL源码解析7——RDMA建连...
·
MySQL不支持view jppd下推...
·
【原创】MySQL5.7 JSON类型使...
·
Pytest框架 —— setUp()和te...
相关博文
·
宽温pSLC选型指南:天硕智能S...
·
8位单片机与32位单片机的深层...
·
LVGL图形库概述及嵌入式GUI发...
·
这些专业,适合学嵌入式!...
·
成品级筛选SSD的六道工序:天...
·
嵌入式操作系统是什么?...
·
技术科普|一文分清 PWM/PWMH...
·
FreeRTOS事件组(Event Group...
·
立方星存储器如何选型?天硕X...
·
立方星存储数据容错体系:天...
冒泡排序的三种方法
分类:
C/C++
2015-09-05 09:24:19
//冒泡排序的三种实现方法
(
以从小到大排序为例
)
//设数组长度为N
//1、compare相邻的前后两个数据,若prev_data
>
next_data
,
则swap
;
//2、对0~
(
N
-
1
)
个数据进行一次遍历,max_data
"沉"
到N
-
1个位置;
//3、N
=
N
-
1
,
if
(
n
!
=
0
)
,
重复2,else
(
sort is completed
)
.
//冒泡排序1
void BubbleSort1
(
int
a
[
]
,
int
n
)
{
int
i
,
j
;
for
(
i
=
0
;
i
<
n
;
i
+
+
)
{
//外循环控制循环趟数
for
(
j
=
0
;
j
<
n
-
i
;
j
+
+
)
{
//内循环控制选择要进行比较的数
if
(
a
[
j
-
1
]
>
a
[
j
]
)
{
Swap
(
a
[
j
-
1
]
,
a
[
j
]
)
;
}
}
}
}
//冒泡排序2
//设置一个标志flag,if swap,then flag
=
ture;else flag
=
false,no swap,so sort is completed
.
void BubbleSort2
(
int
a
[
]
,
int
n
)
{
int
i
;
bool flag
;
flag
=
ture
;
while
(
flag
)
{
flag
=
false
;
for
(
i
=
1
;
i
<
n
;
i
+
+
)
{
if
(
a
[
i
-
1
]
>
a
[
i
]
)
{
Swap
(
a
[
i
-
1
]
,
a
[
i
]
)
;
flag
=
ture
;
}
n
-
-
;
}
}
}
//冒泡排序3
void BubbleSort3
(
int
a
[
]
;
int
n
)
{
int
i
,
j
;
int
flag
;
flag
=
n
;
while
(
flag
>
0
)
{
j
=
flag
;
flag
=
0
;
for
(
i
=
1
;
i
<
n
;
i
+
+
)
{
if
(
a
[
i
-
1
]
>
a
[
i
]
)
{
Swap
(
a
[
i
-
1
]
,
a
[
i
]
)
;
flag
=
i
;
}
}
}
}
阅读(1225) | 评论(0) | 转发(0) |
0
上一篇:
队列的操作集锦
下一篇:没有了
给主人留下些什么吧!~~
评论热议
请登录后评论。
登录
注册