原理介绍:
假设有长度为n的数组a,按照从小到大的顺序进行排序。冒泡排序的思路为:首先从数组的第一个元素开始,对数组中相邻的两个元素进行比较大小。如果左边(即索引数字小的)元素的值大于右边的元素,则交换这两个元素在数组中的位置,一直到最后一个元素为止。此时数组最右边的元素就是该数组中所有元素的最大值。然后再对该数组中剩下的n-1个元素进行这样的迭代比较,直到从小到大排好序即可。 如图所示:
程序实现(Python):
# 冒泡排序法
def
bubbleSort(): # 小驼峰式命名法
ls
= [2, 1, 8, 3, 11, 6, 18, 7, 9, 4]
n
= len(ls
)
for i
in range(n
, 0, -1):
for j
in range(i
):
if(ls
[j
]>ls
[j
+1]):
temp
=ls
[j
]
ls
[j
]=ls
[j
+1]
ls
[j
+1]=temp
if((j
+1)==i
-1):
break
else:
if ((j
+ 1) == i
-1):
break
return ls
t
=bubbleSort()
print(t
)
程序实现(C++):
#include
<iostream
>
#include
<iomanip
>
const int
M=10;
using namespace std
;
int
main()
{
int i
, j
, flag
, temp
, a
[M];
cout
<< "请输入" << M << "个整数:" << endl
;
for (i
= 0; i
< M; i
++)
cin
>> a
[i
];
flag
= 1;
for (i
= 0; i
< M - 1 && flag
; i
++)
{
flag
= 0;
for(j
=0;j
<M-1-1;j
++)
if (a
[j
] > a
[j
+ 1])
{
temp
= a
[j
];
a
[j
] = a
[j
+ 1];
a
[j
+ 1] = temp
;
flag
= 1;
}
}
cout
<< "输出排序后的数组元素:" << endl
;
for (i
= 0; i
< M; i
++)
cout
<< setw(5) << a
[i
];
cout
<< endl
;
return 0;
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-9371.html