关于冒泡排序与选择排序

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

    至于选择排序,思路上与插入排序有些类似,不过比较的范围变成了从当前数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         }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。