1 package com.test4;
2 import java.util.*; //Calendar 显示时间
3 /**
4 * @author qingfeng
5 * 功能:冒泡排序
6 */
7 public class Bubble {
8
9 public static void main(String[] args) {
10 // TODO Auto-generated method stub
11 //int arr[] = {10,1,-20,89,-1,78,-45};
12
13 //随机产生大量数据
14
15 int len = 50000;
16 int[] arr = new int[len];
17
18
19 for(int i=0; i<len; i++)
20 {
21 //产生1到1000的数
22 arr[i] = (int)(Math.random()*1000);
23 }
24 /*
25 for(int i=0; i<len; i++)
26 {
27 System.out.print(arr[i]+" ");
28 }
29 System.out.println();
30 */
31 BubbleSort bs = new BubbleSort();
32 //显示排序前的时间
33 Calendar time = Calendar.getInstance();//获取时间实例
34 System.out.println("排序前的时间为:"+time.getTime());//50000个数排序4秒
35 bs.sort(arr);
36
37 /*
38 SelectSort ss = new SelectSort(); //50000个数排序1秒
39 ss.sort(arr);
40 */
41 /*
42 int a = 1;
43 bs.test(a);
44 System.out.println("a的值为:"+a);//a的值为1 并不是2 因为是值传递
45 */
46
47 /*
48 System.out.println("-----------------------------");
49 for(int i=0; i<arr.length; i++)
50 {
51 System.out.print(arr[i]+" ");
52 }
53 System.out.println();
54 */
55 //显示排序前的时间
56 Calendar time2 = Calendar.getInstance();//获取时间实例
57 System.out.println("排序后的时间为:"+time2.getTime());
58 }
59 }
60 //冒泡排序
61 class BubbleSort
62 {
63 public void test(int a)//值传递
64 {
65 a++;
66 }
67 public void sort(int arr[]) //引用传递(复合类型)
68 {
69 int temp;
70
71 //冒泡排序
72 //外层循环:n个数 n-1趟排序
73 for(int i=0; i<arr.length-1; i++)
74 {
75 //内层循环:若前比后打则交换 (每趟比前一趟少排一个数:所以"-i")
76 for(int j=0; j<arr.length-1-i; j++)
77 {
78 if(arr[j]>arr[j+1])
79 {
80 temp = arr[j+1];
81 arr[j+1] = arr[j];
82 arr[j] = temp;
83 }
84 }
85 }
86 }
87 }
88 //选择排序
89 class SelectSort
90 {
91 public void sort(int arr[])//引用传递
92 {
93 //外层循环:n个数 n-1趟排序 最后一个数不要再次排序
94 for(int i=0; i<arr.length-1; i++)
95 {
96 int min=arr[i];
97 int minIndex = i;
98
99 int j;
100 int temp;
101 //内层循环:选择min值
102 for(j=i+1; j<arr.length; j++)
103 {
104 if(min > arr[j])
105 {
106 min = arr[j];
107 minIndex = j;
108 }
109 }
110 //最小值和每趟第一个值交换
111 temp = arr[i];
112 arr[i] = arr[minIndex];
113 arr[minIndex] = temp;
114 }
115 }
116
117 }
来源:https://www.cnblogs.com/qingfengzhuimeng/p/6495762.html