冒泡排序
冒泡循环,外层冒泡轮数,里层依次比较
冒泡排序
- 比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
- 每次比较,都会产生一个最大或者最小的数
- 下一轮可以少一次排序!
- 依次循环,直到结束!
package com.zhong.array;
import java.tuil.Arrays;
//冒泡排序
//1. 比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
//2.每次比较,都会产生一个最大或者最小的数
//3.下一轮可以少一次排序!
//4.依次循环,直到结束!
public class ArrayDemo07{
public static void main(String [] args){
int[] a = {2,3,5,1,6,12,56,7,23,9};
int[] sort = sort(a); //调用完我们自己写的排序方法后,返回一个排序后的数组
System.out.printIn(Arrays.toString(sort));
}
public static int[] sort(int [] array){ //第一个int是sort的整数类型
//临时变量
int temp = 0;
//外层循环,判断我们这个要走多少次;
for(int i = 0; i < array.length-1; i++){
boolean flag = false; //通过flag标识符减少没有意义的比较 算法的优化
//内层循环,如果第一个数比第二个数大,则交换他们的位置
for(int j = 0; j < array.length-1; j++){
if (array[j+1]>array[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = true;
}
}
}
return array;
}
}
这个算法的时间复杂度为O(n的2次方)。n为循环次数