算法-冒泡排序
简述
冒泡排序:每次比较相邻两数的大小,如果它们顺序错误就把他们交换过来
第1位和第2位比较,第2位和第3位........ 依次下去 共比较 待排序元素个数 -1 次 要循环 待排序元素个数 -1 次 的比较
也就是 双重循环都是 待排序元素个数 -1 次
时间复杂度 and 缺点
时间复杂度: O(N²) 可见时间复杂度很高,不值得推荐
Java
import java.util.Arrays;
import java.util.Scanner;
public class Ceshi {
public static void main(String[] args) {
//冒泡排序
//创建数组存储要排序的数
int p = 5; //排序元素个数
int t,i,k;
int[] nub = new int[p];
//输入分数
for (i = 1;i<=p;i++){
System.out.println("请输入要排序的数:");
Scanner scanner = new Scanner(System.in);
if (scanner.hasNextInt()){
nub[i-1] = scanner.nextInt();
}
}
//冒泡核心 双重循环 都是 元素个数 - 1 次
// 元素比大小 在互相替换
for (k =1;k<p;k++){
for (int x = 0;x<p-1;x++){
if (nub[x]<nub[x+1]){
t = nub[x];
nub[x] = nub[x+1];
nub[x+1]=t;
}
}
}
//输出排序完后的数组
System.out.println(Arrays.toString(nub));
}
}
Python
# 冒泡排序
# 元素个数 nub
nub = 6
k = 1
list1 = []
for i in range(nub):
list1.append(int(input("请输入成绩:")))
while k < nub:
for i in range(nub - 1):
if list1[i] < list1[i + 1]:
t = list1[i]
list1[i] = list1[i + 1]
list1[i + 1] = t
k += 1
print(list1)