冒泡排序 (选择排序,二分查找等算法请看我博客个人分类--算法)
需求:把最大值放在倒数第一个位置
冒泡排序原理: 相邻两个元素比较一次,符合条件的交换位置
class Demo2
{
public static void main(String[] args)
{
int[] arr = {37,21,24,11,31};
//test(arr);
bubbleSort(arr);
System.out.println(Arrays.toString(arr));
}
//冒泡排序
public static void bubbleSort(int[] arr){
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;
}
}
}
}
public static void test(int[] arr){
//最大的放在最后一位
for(int i = 0;i<arr.length-1;i++){
//比较当前元素与右边相邻元素
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
//第二大的冒泡到倒数第二个位置
for(int i = 0;i<arr.length-1-1;i++){
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
//第三大的冒泡到倒数第三个位置
for(int i = 0;i<arr.length-1-2;i++){
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
//第四大的冒泡到倒数第四个位置
for(int i = 0;i<arr.length-1-3;i++){
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
}