用Java进行冒泡排序的代码,利用一个flag进行优化算法:
1 import java.util.Scanner; 2 3 public class Bubble_Sort { 4 private static int array[] = new int[1000]; 5 6 private static void setArray(int length) { 7 // get length and to create array 8 Scanner scanner = new Scanner(System.in); 9 System.out.println("Please entry num:"); 10 for (int i = 0; i < length; i++) { 11 int num = scanner.nextInt(); 12 array[i] = num; 13 } 14 } 15 16 private static void showArray(int length){ 17 // show this array 18 for (int i = 0; i < length; i++) { 19 System.out.print(array[i] + " "); 20 } 21 } 22 23 private static void sortArray(int length){ 24 // 大数向下沉的方法 25 // 设置一个flag用于加快排序速度 26 int flag; 27 // 最大的比较次数 初始化 28 flag = length; 29 while (flag > 1){ 30 for (int i = 0; i < flag; i++) { 31 // 添加一个临界值的判断 因为 当flag=i时 第i+1位的值为0 所以肯定比第i位小 所以会自己添加一个0元素 32 if (array[i] >= array[i+1] && array[i+1] != array[flag+1]){ 33 int swap = array[i+1]; 34 array[i+1] = array[i]; 35 array[i] = swap; 36 } 37 } 38 // 每次循环之后减一 39 flag--; 40 // showArray(length); 41 } 42 } 43 44 public static void main(String[] args){ 45 System.out.println("Please entry a length:"); 46 Scanner scanner = new Scanner(System.in); 47 int length = scanner.nextInt(); 48 setArray(length); 49 sortArray(length); 50 showArray(length); 51 } 52 }
原文地址:https://www.cnblogs.com/future-dream/p/10353897.html
时间: 2024-10-14 21:31:36