面试中需要手写频率最高的一个排序,也是最简单
冒泡排序就是两两比较,把最大的放到最后面
public class SortDemo { public static void main(String[] args) { int[] arr = { 2, 1, 4, 5, 3 }; // 第一轮:12453、12453、12453、12435【此时5已经排好序了,第二轮比较的时候不需要再算上5】 // 第二轮:12435、12435、12345 // ... SortDemo.bubble(arr); } // 冒泡排序 public static void bubble(int[] arr) { // 比较length-1轮,剩下的那一个数字自然就是最小的排在最前面 for (int i = 0; i < arr.length - 1; i++) { // 每轮比较多少次、上一轮已经排好序的不需要再动了 for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } System.out.println(Arrays.toString(arr)); } } System.out.println(Arrays.toString(arr)); } }
一开始扫过N个数、然后扫过N-1个数...等差数列
时间复杂度O(n^2):
可以通过增加一个附加标记来优化该算法
转载于:https://www.cnblogs.com/yuange678/p/10628716.html
原文链接:https://blog.csdn.net/weixin_30342827/article/details/97731665
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
还没有人抢沙发呢~