数组的高级应用
数组是相同类型的一组数值的"集合" 对数组元素的排序是非常常见的操作,排序算法很多,常见的有冒泡排序和选择排序
冒泡排序:bubble 原理:相邻两个元素比较,大的放后边,比较的趟数是元素个数减1
package com.nim.sort;
/*
* 数组排序方法
* 冒泡排序
*/
public class BubbleSortDemo {
public static void main(String[] args) {
int[] arr = productArray();
System.out.println("排序前");
long start = System.currentTimeMillis();
print(arr);
bubbleSort(arr);
System.out.println("----------------------------");
System.out.println(System.currentTimeMillis()-start);
System.out.println("排序后");
print(arr);
}
public static void print(int[] arr){
for (int i = 0; i < arr.length; i++) {
if(i != 0 && i % 100 == 0){
System.out.println();
}
System.out.print(arr[i] + " ");
}
System.out.println();
}
//产生一个1-1000的数组,元素个数1000
public static int[] productArray(){
int[] arr = new int[1000];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random()*1000+1);
}
return arr;
}
public static void bubbleSort(int[] arr){
//外层循环控制比较的轮次,是固定值
for (int i = 0; i < arr.length; i++) {
//内层循环控制比较的次数
for(int j = 0;j<arr.length -1-i;j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}