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 }