关于冒泡排序与选择排序

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

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

 

转载于:https://www.cnblogs.com/yNds/p/4316692.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值