一、排序之冒泡排序

  分析:冒泡排序:

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 }

 

  

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄