码迷,mamicode.com
首页 > 编程语言 > 详细

java代码测试---插入排序和选择排序

时间:2015-05-11 23:26:35      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

  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 }

 

java代码测试---插入排序和选择排序

标签:

原文地址:http://www.cnblogs.com/maduar/p/4495705.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!