1 public class QuickSort {
2
3 //插入排序
4 //插入前的序列是排序好的,将新插入的数值与之前的数值比较
5 //直到找到合适的位置
6 public static int[] quickSort(int[] arr){
7
8 for(int j=1;j<arr.length;j++){
9 int key = arr[j];
10 int i = j-1;
11
12 while(i>=0 && arr[i]<key){
13 arr[i+1] = arr[i];
14 i = i -1;
15 arr[i+1] = key;
16 }
17 }
18
19 return arr;
20 }
21
22 //查询一个值V是否在数组内,如果在数组内输出下标,否则输出‘NIL’
23 public static String quickSortIn(int[] arr,int V){
24 List<Integer> list = new ArrayList<Integer>();
25 for(int i = 0;i<arr.length;i++){
26 if(V == arr[i]){
27 list.add(i);//如果V在数组内,将下标存入list
28 }
29 }
30
31 if(list != null && !list.isEmpty()){//如果list不为空,循环输出
32
33 StringBuilder str = new StringBuilder("");
34 for(int i = 0; i < list.size(); i++){
35 str.append("V = "+"arr["+list.get(i)+"] ");
36 }
37 return str.toString();
38
39 }else{//如果list为空,输出‘NIL’
40 return "NIL";
41 }
42 }
43
44 //选择排序
45 public static void selectSort(int[] a) {
46 int i; // 有序区的末尾位置
47 int j; // 无序区的起始位置
48 int min; // 无序区中最小元素位置
49
50 for(i=0; i<a.length; i++) {
51 min=i;
52
53 // 找出"a[i+1] ... a[n]"之间的最小元素,并赋值给min。
54 for(j=i+1; j<a.length; j++) {
55 if(a[j] < a[min])
56 min=j;
57 }
58
59 // 若min!=i,则交换 a[i] 和 a[min]。
60 // 交换之后,保证了a[0] ... a[i] 之间的元素是有序的。
61 if(min != i) {
62 int tmp = a[i];
63 a[i] = a[min];
64 a[min] = tmp;
65 }
66 }
67 }
68
69 //查询数组的最大值
70 public static int selectMax(int[] arr){
71 int max = arr[0];
72 for(int i =0;i<arr.length;i++){
73 if(arr[i]>max){
74 max = arr[i];
75 }
76 }
77 return max;
78 }
79
80 //查询数组的最小值
81 public static int selectMin(int[] arr){
82 int min = arr[0];
83 for(int i =0;i<arr.length;i++){
84 if(arr[i]<min){
85 min = arr[i];
86 }
87 }
88 return min;
89 }
90
91
92 public static void main(String[] args) {
93 int[] aaa = {1,5,2,3,4,55,11,22,33,4,22,1};
94 int[] bbb = {31,41,59,26,41,58};
95 selectSort(bbb);
96 for(int a : bbb){
97 System.out.print(a+" ");
98 }
99 System.out.println();
100 System.out.println(quickSortIn(bbb,41));
101 System.out.println(selectMin(bbb));
102 }
103 }