冒泡排序

冒泡排序 C语言实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# include <stdio.h>
int main(void)
{
//待排序的数字
int a[] = {900, 2, 3, -58, 34, 76, 32, 43, 56, -70, 35, -234, 532, 543, 2500};
int n; //存放数组a中元素的个数
int i; //比较的轮数
int j; //每轮比较的次数
int buf; //交换数据时用于存放中间数据
//计算数组个数
n = sizeof(a) / sizeof(a[0]); /*a[0]是int型, 占4字节, 所以总的字节数除以4等于数组中元素的个数*/
for (i=0; i<n-1; i++) //比较n-1轮
{
for (j=0; j<n-1-i; j++) //每轮比较n-1-i次,
{
//比较如果后面的数大
if (a[j] < a[j+1])
{
//交换
buf = a[j]; //把小的先缓存
a[j] = a[j+1]; //把大的放到前面
a[j+1] = buf; //把小的放后面
}
}
}
for (i=0; i<n; ++i)
{
printf("%d\x20", a[i]);
}
printf("\n");
return 0;
}

运行结果:

1
2500 900 543 532 76 56 43 35 34 32 3 2 -58 -70 -234

冒泡排序 JavaScript实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script>
var array = [3, 4, 1, 2];
document.writeln("排序前:" + array + "<br>");
function bubbleSort(array) {
var temp = 0;
for (var i = 0; i < array.length - 1; i++) {
for (var j = 0; j < array.length - 1 - i; j++) {
// 如果后面的比前面的大
if (array[j] < array[j + 1]) {
// 将小的数缓存
temp = array[j];
// 将 大的 数放到前面
array[j] = array[j + 1];
// 将 小的 数放到后面
array[j + 1] = temp;
}
}
}
return array;
}
var sortarray = bubbleSort(array);
document.writeln("排序后:" + sortarray + "<br>");
</script>

运行效果:

1
2
排序前:3,4,1,2
排序后:4,3,2,1

参考资料

https://blog.csdn.net/fe_dev/article/details/79600448