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