@冒泡排序python和C++代码实现(依次比较相邻项将最大或者最小项置换到列表的尾部)
冒泡排序就是每一次遍历过程中,比较相邻的元素大小,将最大或者最小的元素最终置换到列表的尾部。
由于一直为找工作的笔试做准备,所以其中的输入是按照行的输入自动读取的,输入完所有行数据通过Ctrl+D来结束输入,程序结束就会显示结果。
方法一:python标准方法
# 冒泡排序的标准方法
import sys
def bubble_sort(lists):
for i in range(len(lists)-1):
for j in range(len(lists)-i-1):
if lists[j] > lists[j+1]:
lists[j], lists[j+1] = lists[j+1], lists[j]
return lists
if __name__ == '__main__':
lines = sys.stdin.readlines()
lists = lines[0].strip().split()
print("排序前序列为:", )
for i in lists:
print(i,end=" ")
print("\n排序后结果为:")
for i in (bubble_sort(lists)):
print(i,end=" ")
方法二:C++标准方法
#include <iostream>
using namespace std;
void BubbleSort(int list[], int n);
int main()
{
int a[] = {6,5,8,4,9,1,7,3,2,0};
BubbleSort(a,10);
for (int k =0; k < 10; k++)
{
cout << a[k] << " ";
}
cout << endl;
system("pause");
return 0;
}
void BubbleSort(int list[], int n)
{
for (int i=0; i< n-1; i++)
{
for (int j = 0;j < n-i-1; j++)
{
if (list[j] > list[j+1])
{
std::swap(list[j],list[j+1]);
}
}
}
}
方法三:自己的方法
# 自己的方法
import sys
def bubble_sort(lists):
count = len(lists)
while count >= 3:
for i in range(count-1):
if lists[i] > lists[i+1]:
lists[i], lists[i+1] = lists[i+1],lists[i]
count -= 1
return lists
if __name__ == '__main__':
lines = sys.stdin.readlines()
lists = lines[0].strip().split()
print("排序前序列为:", )
for i in lists:
print(i,end=" ")
print("\n排序后结果为:")
for i in (bubble_sort(lists)):
print(i,end=" ")