一、冒泡排序
特点:效率低,实现简单
原理:将待排序列中最大的数往后冒泡,成为新的序列,重复以上操作直到所有元素排列完成
冒泡排序步骤:
1、双重循环,外层循环length-1轮
2、内层循环比较length-1-外层循环i次(因为每循环i次会将i个最大的数派到后面)
3、内存循环两两比较,进行交换。
图片来自网络,侵删
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {5,3,1,6,7,9,5,7};
System.out.println(Arrays.toString(arr));//[5, 3, 1, 6, 7, 9, 5, 7]
bubbleSort(arr);
System.out.println(Arrays.toString(arr));//[1, 3, 5, 5, 6, 7, 7, 9]
}
public static void bubbleSort(int[] arr)
{
int temp;
//一共需要比较length-1轮
for(int i=0;i<arr.length-1;i++)
{
//每一轮比较的次数,-i是每一轮都有一个最大的数冒泡到后边,下一轮不需要参与比较。
for(int j=0;j<arr.length-1-i;j++)
{
//两两比较进行交换。
if(arr[j]>arr[j+1])
{
temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
}