//排序 选择排序 数组中每个元素都进行比较 public class Test { public static void main(String[] args) { int[] arr = {12,69,852,25,89,588}; selectS(arr); printS(arr); } public static void printS(int[] arr){ for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } public static void selectS(int[] arr){ for(int i=0;i<arr.length;i++){ for(int j =i+1;j<arr.length;j++){ if(arr[i]>arr[j]){//如果i>j int tmp=arr[i];//i拿起来放在一个空里 i则空 arr[i]=arr[j];//j放在空的i里 j则空 arr[j]=tmp;//tmp(i)放在空的j里 //实现i和j比较 大的右移继续比较 } } } } }
冒泡排序:
//冒泡排序 数组中跟相邻的元素比较 比较矮大小 交换位置
原理:比较两个相邻的元素,将值大的元素交换至右端。
思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。
第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;
第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;
依次类推,每一趟比较次数-1;
public class Test5 { public static void main(String[] args) { int[] arr = {12,2,25,89,5}; bubbleSort(arr); printArray(arr); } public static void bubbleSort(int[] arr){ for (int i = 0; i < arr.length-1; i++) { for(int j=0;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } public static void printArray(int[] arr){ for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }