首页 > 其他分享 >排序法【冒泡排序法】

排序法【冒泡排序法】

时间:2022-11-15 11:00:12浏览次数:46  
标签:int 冒泡排序 arrays arrs println 排序

 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 }

 

标签:int,冒泡排序,arrays,arrs,println,排序
From: https://www.cnblogs.com/Lucky-only/p/16891682.html

相关文章

  • java list按另一list 排序
    枚举类让list按照枚举顺序排序publicenumDemoEnumTest{IMPORT_VALUE("价值客户","1"),IMPORT_RECALL("唤回客户","2"),IMPORT_DEEP_PLOUGHING("深......
  • Flask 学习-97.Flask-SQLAlchemy 排序 order_by()
    前言order_by()对查询结果排序按字段排序根据id字段排序,默认是正序a=Students.query.order_by(Students.id).all()print(a)使用asc()函数正序a=Student......
  • 1710. 卡车上的最大单元数 ----- 贪心算法,自定义sort排序
    请你将一些箱子装在一辆卡车上。给你一个二维数组boxTypes,其中boxTypes[i]=[numberOfBoxesi,numberOfUnitsPerBoxi]:numberOfBoxesi是类型i的箱子的数量。numb......
  • 【数据结构与算法之美】排序(下):如何用快排思想在O(n)内查找第K大元素?
    目录​​一、分治思想​​​​二、归并排序​​​​三、快速排序​​​​四、归并排序与快速排序的区别​​​​五、课后思考​​一、分治思想1.分治思想:分治,顾明思意,就是分......
  • PYTHON_排序
    准备分模块积累,此模块为【递推】。编写程序,输入一个包含20个整数的列表,对其中偶数下标的元素进行降序排列,奇数下标的元素不变。输出排序后的列表。(提示:使用切片。)输入样......
  • 【数据结构OJ】实验10 拓扑排序与关键路径等
    【数据结构OJ】实验10拓扑排序与关键路径等存一下代码:A.图综合练习--拓扑排序整的很复杂#include<iostream>usingnamespacestd;constintN=1005;intn,d[......
  • 319场周赛 逐层排序二叉树需要的最小操作数目
    319场周赛逐层排序二叉树所需的最小操作数目给你一个值互不相同的二叉树的根节点root。在一步操作中,你可以选择同一层上任意两个节点,交换这两个节点的值。返回每......
  • 20221114_T4B_拓扑排序贪心
    题意L国正在举行各种会议,但是可怜的是L国只有一个主持人,每场会议的开始主持人都必须去主持会议,使会议得以开始,在会议开始后主持人可以离开。 主持人不会分身,他在一个时刻......
  • 插入排序
      publicclassInsertSort{publicstaticvoidmain(String[]args){int[]arr={58,5,10,2,47};for(inti=1;i<arr.length;......
  • 归并排序
    基本思想:通过分块治理,现将分开的部分变得有序,再来进行合并,称为归并排序。二路归并:通过将待排序咧分成两部分进行归并排序,称为二路归并排序。将每个元素拆分成大小为1的分......