代码改变世界

选择排序和插入排序

2013-01-31 17:08  Polarisary  阅读(160)  评论(0编辑  收藏  举报
 1 /**
 2      * 选择排序
 3      * @param arr 待排数组
 4      */
 5     public static void selectSort(int[] arr){
 6         int n = arr.length;
 7         for(int i=0;i<n;i++){
 8             int min = i;
 9             for(int j=i+1;j<n;j++){
10                 if(arr[j]<arr[min])
11                     min = j;
12             }
13             ex(arr,i,min);
14         }
15     }
16 
17     /**
18      * 插入排序
19      * @param arr 待排数组
20      */
21     public static void insertSort(int[] arr){
22         int n = arr.length;
23         for(int i=1;i<n;i++){
24             for(int t=i;t>0&&arr[t]<arr[t-1];t--){
25                 ex(arr,t,t-1);
26             }
27         }
28     }
29 
30     private static void ex(int[] arr,int index1,int index2){
31         int tmp = arr[index1];
32         arr[index1] = arr[index2];
33         arr[index2] = tmp;
34     }