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 }
时间: 2024-10-23 10:35:50