数组排序——冒泡排序和选择排序

数组排序

    排序: 排列顺序   从大到小  从小到大 

    排序算法有很多,比较基础的有冒泡排序的和选择排序。

    (1)冒泡排序

      冒泡排序规则: 相邻的两个元素进行比较,如果前者大于后者,那么两者交换位置(每次比较和移动的是相邻的两项)。

      外层循环控制比较的轮数,也就是数组需要比较的数字数量。

      内层循环控制每轮需要两两比较的次数(随着比较的进行,不断选出最大、次大值...,对于已经确定的值将不会在进行比较,因此每轮进行两两比较的数量会不断减一)

 

public class Demo1{
    public static void main(String[] args) {
        int[] a = {3,4,1,2,5432,523,45,324,532,45,32,4532,45,3245,2,4532};
     //从小到大排列
        for(int i = 0; i< a.length;i++){//比的轮数            、
      for(int k = 0; k< a.length - i;k++){
                // k[i]  ---k[i+1]
                // 如果前者大于后者 交换位置
                if(a[k]>a[k+1]){
                    int temp = a[k];
                    a[k] = a[k+1];
                    a[k+1] = temp;
                }
            }
        }
        //排序成功 遍历 
        for(int i = 0; i<a.length;i++){
            System.out.println(a[i]);
        }
    }
}

 

 

 

    (2)选择排序

     选择排序规则: 两个元素进行比较,如果前者大于后者,那么两者交换位置,否则无变化(每一次交换的是当前项和第n项)。

import java.util.*;
public class Demo1{
    public static void main(String[] args) {
        int[] a = {3,4,1,2,5432,523,45,324,532,45,32,4532,45,3245,2,4532};
        //从小到大排列
        for(int i = 0; i < a.length ;i++)
            for(int j = i+1; k<= a.length; k++){
                // k[i]  ---k[j]
                // 如果a[i]大于a[j] 交换位置
                if(a[i]>a[j]){
                    int temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
        
        //快速排序: 可以使用 Arrays工具类中sort方法
        //Arrays.sort(a);

        //排序成功 遍历 
        for(int i = 0; i<a.length;i++){
            System.out.println(a[i]);    
        }
        
    }
}

 

posted @ 2021-04-11 16:50  泰初  阅读(672)  评论(0编辑  收藏  举报