十种排序算法
3 月,跳不动了?>>> 排序 冒泡排序 排序过程 1、已知数组的长度为n,假定排序的总趟数为t,则t=n-1 2、第i趟(i取值范围[1,n-1])从第0个元素开始直到第n-i个元素,逐一向后每两个相邻的元素相互比较交换,保证最大(或者最小)值在后面 3、i++之后重复第二步 时间复杂度 最坏:n(n^2) 最好:n(n) 空间复杂度 一次基础临时变量赋值,所以空间复杂度为O(1) 稳定性 相邻数据之间的交换,所以是【稳定排序】 代码实现 public List<Integer> sort(List<Integer> list) { int size = 0; if(list == null || (size = list.size()) <= 1){ return list; } //总趟数 int t = size - 1; for (int i = 1; i <= t; i++) { boolean sorted = true; for (int j = 0; j < size - i; j++) { if (list.get(j) <= list.get(j + 1)) { continue; } //前面的比后面的大,需要交换 Integer temp = list.get(j); list.set(j, list.get(j + 1)); list.set(j + 1