学习笔记-冒泡排序
原理:两两比较,如果前一个数大于后一个数就交换次序,直到最大的数排到最后。
示例:
思路:
确定共要比较几轮:一共有7个数字,第一轮比较下来只剩6个数字需要比较,第二轮剩5个,第三轮剩4个,第四轮剩3个,第五轮剩2个,第六轮剩1个,结 束。所以一共要进行六轮,即要进行n-1轮。
确定每一轮中的比较次数:第一轮中,有7个数,两两比较需要6次;第二轮中,有6个数需要比较,所以需要比较5次,以此类推
代码:
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = new int[] {2,3,5,1,8,7,6};
bubblesort(arr);
System.out.println(Arrays.toString(arr));
}
public static void bubblesort(int[] arr) {
/*
* 两两比较,如果前一个大于后一个就交换, 一共进行n-1轮
* 第一轮将最大的数放到最后,依次类推 已排好的数不需要比较
*/
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]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}