算法:冒泡排序
2018-01-29 21:16
169 查看
package com.lyil; import java.util.Arrays; import java.util.Random; /** * 冒泡排序算法 * 数组长度为:n * 第1次排序,从后往前推,依次比较,交换位置,取出最小的放到第1个位置(后面的数据会发生交换) * 第2次排序,从后往前推,依次比较,交换位置,取出最小的放到第2个位置(后面的数据会发生交换) * ...... * 第n次排序,从后往前推,依次比较,交换位置,取出最小的放到第n个位置(后面的数据会发生交换) * * * @author:Administrator * @Create:2018年1月30日 @version V1.0 * @Description:TODO */ public class BubbleSort { public static void main(String[] args) { // int[] arr = getArr(10, 100); int[] arr={127,118,105,101,112,100}; out: for (int i = 0; i < arr.length - 1; i++) { boolean exchange = false; for (int j = arr.length - 1; j > i; j--) {// 从后往前推,每一次循环即将最小的放到最前面,第i次需要执行循环体length-i次,故j>i即可 // 交换数据 if (arr[j] < arr[j - 1]) { // 执行交换 int temp = arr[j - 1]; arr[j - 1] = arr[j]; arr[j] = temp; exchange = true; } } // 没有执行交换,则表明排序结束 if (!exchange) { break out; } System.out.println(Arrays.toString(arr)); } } private static int[] getArr(int len, int n) { int[] arr = new int[len]; for (int i = 0; i < len; i++) { arr[i] = new Random().nextInt(n); } return arr; } }
相关文章推荐