1.1冒泡排序
1.1.1基本介绍:
冒泡排序(Bubble Sorting)的基本思想是:通过将排序序列从前向后从下标小的元素开始,依次比较相邻元素的值,若发现逆序则交换,使得值相对较大的元素逐渐从前移动到后,像是水里的泡泡一样沉得往下落,轻的向上冒。
优化:当如果其中一趟冒泡排序没有进行交换时,则说明序列有序,此时就无需在进行排序。也就是说可以在排序过程中设置一个标志flag判断元素是否进行过叫唤。从而提升排序效率。
1.1.2代码实现:
package DataStructure;
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] num = {20,9,-1,20,49};
BubbleSort(num);
System.out.println(Arrays.toString(num));
}
public static void BubbleSort(int[] array) {
//冒泡排序的时间复杂度一般为O(n²)
int temp = 0;
boolean flag = false;//标识变量 表示是否进行交换
for(int i=0;i<array.length-1;i++){
for(int j=0;j<array.length-1-i;j++) {
if(array[j]>array[j+1]) {
flag = true;
temp=array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
if(!flag) {//该趟排序中 没有发生交换
break;
}else {
flag = false;//重置flag!!! 进行下次判断
}
}
}
}