冒泡排序就是这么容易
愚昧者怨天尤人,无能者长吁短叹,儒弱者颓然放弃。
冒泡排序就是这么容易
科班的大多在学校时都学过数据结构和算法,不论是做算法还是做业务,排序都是经常要打交道的,还记得冒泡排序吗?一起来看看
实质:把大(小)的元素往前(后)调,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。
时间复杂度:O(n²)
算法描述(从小到大排序):
长度为n的数组,选取第一个数(第0位)为 i,i与i+1比较,如果i>i+1,那么交换位置
循环i++,直到n-1位,一趟下来,数组中最大的排到数组最后面。
@Test
public void bubbleSort(){
//创建一个乱序的数组
int [] arr = {0, 10, 5, 9, 17, 2, 13};
//双层for循环,控制循环次数
//外层是排序趟数,内层是比较次数
for (int i=0;i<arr.length-1;i++){
for (int j=0;j<arr.length-1-i;j++){
if (arr[j]>arr[j+1]){//如果j>j+1,置换位置
int temp = arr[j+1];//临时变量
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
//排序后结果
for (int i:arr) {
System.out.println(i);
}
}
冒泡排序是一种稳定排序算法
更多文章后面会持续分享,有特别需要可以提前留言。