排序法【冒泡排序法】

复制代码
 1 package com.Lucky.base;
 2 
 3 import java.util.Arrays;
 4 
 5 /*
 6       排序法:
 7         1、直接插入排序;
 8         2、希尔排序;
 9         3、简单选择排序;
10         4、堆排序;
11         5、冒泡排序;【目前需要掌握的】
12         6、快速排序;
13         7、归并排序;
14         8、桶排序/基数排序。
15  */
16 public class sort {
17 
18     public static void main(String[] args) {
19 
20 
21         //调用自定义的冒泡排序法
22         int[] arrays={78,89,45,12,100,65,22,6,7,2};  //此时的排序是烂七八糟的
23 
24         System.out.println();
25         String str= Arrays.toString(Mysort(arrays));
26         System.out.println(str);   //从小到大重新排序了
27 
28 
29         String str1= Arrays.toString(MaxSort(arrays));
30         System.out.println(str1);   //从大到小重新排序了
31     }
32 
33 
34 
35 
36     /**
37      *  //冒泡排序法思路:
38      * 1.获取数组中的第一个数与相邻的另一个数据相比较,第一个数比第二个数大,就交换位置
39      * 2.下一轮则可以少循环一次
40      * 依次循环,直到结束
41      *
42      * 【1,9,5,4,2,8,7】
43      * @param arrs
44      * @return
45      */
46     public static int[] Mysort(int[] arrs){
47         int temp=0;
48 
49         for (int i = 0; i < arrs.length-1; i++) {  ///防止数组越界Bug
50                //内层循环【比上一层循环少一次】
51             for (int j = 0; j < arrs.length-1-i; j++) {
52                  //交换相邻的数据【从小到大】
53                 if(arrs[j+1]<arrs[j]){
54                     temp=arrs[j];  ///临时将大的那个值放在这里
55                     arrs[j]=arrs[j+1];//将小的值放在前面
56                     arrs[j+1]=temp;  //将大的值从临时变量中重新取出来
57                 }
58             }
59         }
60         return arrs;
61     }
62 
63     /**
64      * 从大到小排序:冒泡排序法
65      * @return
66      */
67     public static int[] MaxSort(int[] e){
68         //定义一个临时变量
69         int tempy=0;
70 
71         for (int i = 0; i < e.length-1; i++) {
72             boolean flag=false;
73             for (int j = 0; j < e.length-1-i; j++) {
74                 if(e[j]<e[j+1]){   // 1  3
75                     tempy=e[j];   //1
76                     e[j]=e[j+1];  //3
77                     e[j+1]=tempy;  //1
78                     flag=true;
79                 }
80                 if(flag==false){   //跳出内层循环就结束【优化】
81                     break;
82                 }
83             }
84         }
85         return e;
86     }
87 }
复制代码

 

posted @   唯易人生  阅读(196)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示