yNdots
需要及时鞭策的测试汪

    冒泡排序是最早接触的排序方法了,思路也很简单,两层循环,相邻数比较,小的上升大的下沉。

    至于选择排序,思路上与插入排序有些类似,不过比较的范围变成了从当前数i到n-1,找出其中最小的数,记下下标,在外层循环中完成一次交换。不过在交换之前需要加一个大小比较的判定,这样在某种程度上就节省了成本。

    BubbleSort:

 1         final int[] arr={57,68,59,52};
 2         for(int i=0;i<arr.length;i++){
 3             /*此处需要-1的原因是,内层比较是当前数与后一个数的比较,如果内层循环可以到最后一个数,那么就会出现数组越界Exception*/
 4             for(int j=i;j<arr.length-i-1;j++){
 5                 if(arr[j]>arr[j+1]){
 6                     int temp;
 7                     temp=arr[j+1];
 8                     arr[j+1]=arr[j];
 9                     arr[j]=temp;
10                 }
11             }
12         }

     SelectionSort:

 1         int[] arr={57,68,59,52};
 2         
 3         for(int i=0;i<arr.length;i++){
 4             int minIndex=i;
 5             for(int j=i+1;j<arr.length;j++){
 6                 if(arr[j]<arr[minIndex])
 7                     minIndex=j;
 8             }
 9             /*交换之前需要添加一个比较的验证过程*/
10             if(arr[i]>arr[minIndex]){
11                 int temp;
12                 temp=arr[minIndex];
13                 arr[minIndex]=arr[i];
14                 arr[i]=temp;
15             }
16 
17         }

 

posted on 2015-03-05 20:49  一条特立独行的狗  阅读(151)  评论(0编辑  收藏  举报