常用的排序和选择
一、排序之冒泡排序
分析:冒泡排序:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。从小到大:相邻两个元素两两比较,将大的值移动到右端;
从大到小:相邻两个元素两两比较,将小的值移动到右端;
其中比较的趟数取决于数组长度-1,每趟的比较的元素会减少一个,即数组长度-1-i;
代码实现:
1 package com.javase.sort; 2 3 public class SortPractice { 4 public static void main(String [] args) { 5 int [] arr = {55,32,12,10,99}; 6 System.out.println("原数组:"); 7 traversingArr(arr); 8 bubbleSort(arr); 9 System.out.println("冒泡后数组:"); 10 traversingArr(arr); 11 } 12 13 public static void bubbleSort(int [] arr) { 14 //冒泡排序,外循环次数为数组长度-1,控制总比较次数 15 for(int x= 0;x<arr.length-1;x++) { 16 /*内循环次数为数组长度-1-x;控制每次的比较次数 17 *数组长度-1:表示不让指针溢出; 18 *数组长度-1-x:表示每次循环减少一次比较,大的值已经存放在尾部 19 */ 20 for(int y = 0;y<arr.length-1-x;y++) { 21 if(arr[y]>arr[y+1]) { 22 int temp = arr[y+1]; 23 arr[y+1] = arr[y]; 24 arr[y]=temp; 25 } 26 } 27 } 28 29 } 30 31 //遍历数组 32 public static void traversingArr(int [] arr) { 33 34 for(int i = 0 ;i<arr.length;i++) { 35 if(arr.length-1==i) { 36 System.out.println(arr[i]); 37 }else { 38 System.out.print(arr[i]+","); 39 } 40 } 41 } 42 }
二、选择排序
分析:选择排序
从小到大:每个元素依次和后面的元素比较,将小的值依次存放;
从大到小:每个元素依次和后面的元素比较,将大的值依次存放;
代码实现:
1 package com.javase.sort; 2 3 import java.time.Year; 4 5 public class SortPractice { 6 public static void main(String [] args) { 7 int [] arr = {55,32,12,10,99}; 8 System.out.println("原数组:"); 9 traversingArr(arr); 10 selectSort(arr); 11 System.out.println("选择排序后数组:"); 12 traversingArr(arr); 13 } 14 15 public static void selectSort(int [] arr) { 16 for(int x = 0 ; x < arr.length-1; x++) { 17 for( int y=x;y<arr.length-1;y++) { 18 if(arr[x]>arr[y+1]) { 19 int temp = arr[x]; 20 arr[x]=arr[y+1]; 21 arr[y+1] = temp; 22 } 23 } 24 } 25 } 26 27 //遍历数组 28 public static void traversingArr(int [] arr) { 29 30 for(int i = 0 ;i<arr.length;i++) { 31 if(arr.length-1==i) { 32 System.out.println(arr[i]); 33 }else { 34 System.out.print(arr[i]+","); 35 } 36 } 37 } 38 }

更多精彩