• java选择排序和冒泡排序


    public class Choose{
     public static void main(String[] args){
      int[] arr = {4,6,7,3,1,6};
       Select a = new Select();
       a.sort1(arr);
       System.out.println("选择排序后:");
       for(int i=0;i<arr.length;i++){
        System.out.print(arr[i]);
        }
        a.sort2(arr);
        System.out.println("");
        System.out.println("冒泡排序后:");
        for(int j=0;j<arr.length;j++){
          System.out.print(arr[j]);
          }
        
         
       }

    }

    /**
    //*选择排序基本思想:在每次循环过程中,选出一个最小值,指针依次下移。第一步:选择一个在

    小的值放在数组0的位置上,第二次选择//第*二小的放在数组下标为为1的位置上
    */

    class Select{
    public static void sort1(int arr[]){
    for(int i=0;i<arr.length-1;i++){
       for(int j=i+1;j<arr.length;j++){
        if(arr[i]>arr[j]){
            //交换位置
             int temp = arr[i];
             arr[i] = arr[j];
             arr[j] = temp;
             }
         }
       }
       // return arr;
     }


    /**
    *冒泡排序的基本思想:在第一次循环中,前一个数和第二个数进行比较,小的前移,一次循环结束

    之后,确定了最大的数在最后面。
    */
    public static void sort2(int arr[]){
      for(int i=0;i<arr.length;i++){
       for(int j=i;j<arr.length-i-1;j++){
         if(arr[j]>arr[j+1]){
           int temp = arr[j];
           arr[j] = arr[j+1];
           arr[j+1] = temp;
           }
         }
       }
    }

    }

    当然java中也可以进行快速排序,不过建议自己不要写快速排序,因为java提供了很多类库,直接调用就行省出了很多写代码的必要。对于排序的方法,直接调用sort方法即可。

    在对数组操作中,要注意的问题有角标越级问题,在写排序方法中,可以直接还回数组,这时候方法的还回值类型要设置成数组类型。下面以数组还回值类型为例写一下简单的代码。

    class A{
    public static int[] sort1(int arr[]){
    for(int i=0;i<arr.length-1;i++){
       for(int j=i+1;j<arr.length;j++){
        if(arr[i]>arr[j]){
            //交换位置
             int temp = arr[i];
             arr[i] = arr[j];
             arr[j] = temp;
             }
         }
       }
        return arr;
     }
    }

    public class Back{
    public static void main(String[] arg){
      A a = new A();
      int[] arr ={4,6,1,3,9};
     System.out.println(a.sort1(arr));

     }

    }

  • 相关阅读:
    Android API之android.provider.ContactsContract.Data
    Android API之android.provider.ContactsContract
    Android API之android.provider.ContactsContract.Contacts
    Android API之android.os.Parcelable
    Android网络开发之基本介绍
    wpf小技巧——datagrid 滚动条问题
    C# List去重的三种方法(转)
    spring jwt springboot RESTful API认证方式
    Springboot 实现api校验和登录验证
    SpringBoot系列
  • 原文地址:https://www.cnblogs.com/laok/p/4746427.html
Copyright © 2020-2023  润新知