冒泡排序
算法原理
冒泡排序属于基于交换思想的排序方法。它将相邻的两个元素加以比较:
- 若左边元素值大于右边元素,则将这两个元素交换;
- 若左边元素值小于等于右边元素值,则这两两个元素位置不变。
算法实现
public class Bubble_sort {
public static void main(String[] args){
int[] array = {5,2,4,6,1,3};
for(int i = 0; i < array.length; i++){
//表示冒泡排序所需要走的次数
for(int j = array.length - 1; j >= i + 1; j--)
//从后向前走比较大小并排序
if (array[j] < array[j - 1]) {
/*前一个数比相邻后面的数大,就交换位置
并且j--,向前移动一位,继续比较重复此过程,直到本次循环结束*/
int temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
for(int x:array){
//使用foreach对函数进行遍历输出
System.out.print(x);
}
}
/*
结果:
123456
Process finished with exit code 0
*/
算法图解
根据上面算法实现中的例子,我们对他进行画图解析以便于理解
解释:
下标i从0开始,到最后一个元素的角标结束所以i的取值为[0,5];
j从后往前移动,取值范围为[5,1].
深色表示已经拍好的序列。