冒泡排序和选择排序都属于内部排序,这两种排序方式的平均时间复杂度和最坏时间复杂度都是,并且他们都适用于数据比较少的情况下使用,不同的是冒泡排序比选择排序更稳定。下面分别聊聊这两种排序方式吧。
一、冒泡排序
冒泡排序是对待排序序列下标有小到大开始遍历比较,若这两个元素逆序,则交换,不逆序则继续比较一下一个,比较数组长度-1趟即可。若是某一趟没有交换,则证明这个数组序列有序,退出即可。代码如下:
/**
* 冒泡排序:每一趟都只是比较相邻两个数的大小,再按照给定规则交换
* 优化:要是某一趟中没有进行数据交换,证明这个数组是有序的,不用在进行排序,
* 设置flag标志位判断是否进行了交换
*/
public class BubbleSort {
public static void main(String[] args) {
// int[] arr = {3,9,-1,10,-2};
int[] arr = {1,2,3,4,5,6};
BubbleSort bubbleSort = new BubbleSort();
bubbleSort.sort(arr);
bubbleSort.print(arr);
}
private void sort(int[] arr){
int temp =