-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBucketSort.java
64 lines (57 loc) · 1.68 KB
/
BucketSort.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package Sort;
import java.util.Scanner;
/**
* Created by SonamLee on 2017/3/15.
* 桶排序
* eg:
* 数字出现可能性为0到10,排序5 8 5 2 3
*
* 可能出现的数字有11个,定义一个一维数组arr[11],初值都为0,出现哪个数字,arr[1]++
* 遍历arr,输出不为0的数字
*
* 以空间换时间
* 桶的个数为m(数组长度),输入数字个数为n
* 排序算法一共执行了m+n次
* 时间复杂度为O(m+n)
* 时间复杂度通常用大写字母表示,即O(M+N)
*/
public class BucketSort {
public static void main(String[] args){
int[] arr = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
System.out.println("Please enter 5 numbers below 10:");
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 5; i++){
System.out.print("Please Enter:");
int temp = 0;
/**
* 验证输入
*/
try {
temp = Integer.parseInt(scanner.next());
}catch (Exception e){
System.out.println("Please enter a correct number!");
i = i-1;
continue;
}
if (temp > 10){
System.out.println("Please enter a correct number!");
i = i-1;
continue;
}
/**
* **************************************
*/
arr[temp]++;
}
//从大到小
// for (int i = arr.length; i > 0; i--){
//
// }
//从小到大
for (int i = 0; i < arr.length; i++){
if (arr[i] != 0){
System.out.print(i);
}
}
}
}