数组排序——冒泡排序和选择排序
数组排序
排序: 排列顺序 从大到小 从小到大
排序算法有很多,比较基础的有冒泡排序的和选择排序。
(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]); } } }