Java假期第四周

目录

###算法

        ##冒泡排序    

                                 方法:

        ##选择排序       

                        #方法

        ##插入排序

                        #方法


###算法---排序

        ##冒泡排序    

                                (*/一个判断类体:判断比较的两个数谁大*/)

                                (*/一个交换位置类体:用来交换两个数的位置)       

                                (*/主类体:用来写主程序)             

                #方法:

                                1:创建对象(创建一个名为Bubble的类)

public class Bubble(){
    
}

                                 2:在Bubble下创建主程序、交换类体、比较类体

public class Bubble(){
    public static void sort(Comparable[] a){ ///a是数组Comparable的名称 a[]
                  
    }
    
    public static boolean greater(Comparater i,Comparater j){  //创建布尔型的比较函数 返回0/1
        
    }

    public static void change(Comparater[] a,int i,int j) {    //交换数组a[]中第i,j的位置
    
    }
}

                                3:编写代码

public class Bubble(){
    public static void main(String[] agrs){
        sort(a);
    }

    
    public static void sort(Comparable[] a){ ///a是数组Comparable的名称 a[]
          for(int i=0;i<a.length-1;i++){
              for(int j=i+1;j<a.length-1;j++){
                  if(greater(a[i],a[j]>0){
                        change(a,i,j);
                    }
                }  
          }
          for(int i=0;i<a.length-1;i++){
                System.out.println(a[i]);
            }            
    }
    
    public static boolean greater(Comparable i,Comparater j){  //创建布尔型的比较函数 返回0/1
        return i.compareTo(j);  ///compareTo自带比较函数 如果i>j返回1 j<i返回-1 相等返回0
    }

    public static void change(Comparable[] a,int i,int j) {    //交换数组a[]中第i,j的位置
        Comparable temp=a[i];
        a[i]=a[j];
        a[j]=temp;
    }
}

///Comparable 表示可排序的

        ##选择排序       

                                (*/一个判断类体:判断比较的两个数谁大*/)

                                (*/一个交换位置类体:用来交换两个数的位置)

                                (*/从序列中选出最小的排到前面位置,依次进行)       

                        #方法

                                1:创建一个select的类

public class select(){

}

                                2:在加入各个类体

public class select(){
    public static void main(String[] agrs){
        
    }

    public static void sort(Comparable[] a){
        
    }
    
    public static boolean greater(Comparable v,Comparable w){
    
    }
    
    public static void change(Comparable[] a,int i,int j){
     
    }
}

                                3:编程

public class select(){
    public static void main(String[] agrs){
        int a[10]={2,3,4,2,23,1,5,3,4,9}
        sort(a);
        for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
        }
    }

    public static void sort(Comparable[] a){
        for(int i=0;i<a.length-2;i++){
            //定义一个变量,记录最小值的位置
            int minIndex =i;
            for(int j=i+1;j<a.length;j++){
                if(greater(a[minIndex],a[j])){ //比较两处的大小
                    minIndex=j;    
                }
            }
            change(a,i,minIndex);
        }
    }
    
    public static boolean greater(Comparable v,Comparable w){
        return v.compareTo(w);
    }
    
    public static void change(Comparable[] a,int i,int j){
        Comparable temp =a[i];
        a[i]=a[j];
        a[j]=temp;
    }
}

        ##插入排序

                        (通过比较后面的数与第一个的大小进行插入)

                                #方法

                                        1:创建类

public class Insertion(){

}

                                      2:创建类体

        

public static void main(String[] agrs){
        
    }

    public static void sort(Comparable[] a){
        
    }
    
    public static boolean greater(Comparable v,Comparable w){
    
    }
    
    public static void change(Comparable[] a,int i,int j){
     
    }

                                 3:编程

public class Insertion(){
    public static void main(String[] agrs){
        int a[10]={4,3,2,10,6,4,3,7,4,3}
        sort(a);
        for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
        }
    }

    public static void sort(Comparable[] a){
        for(int i=1;i<a.length;i++){
            for(int j=i;i>=0;j--){
                if(greater(a[j-1],a[j]){
                change(a,j-1,j)}
                else break;
            }
        }
    }
    //比较两数的大小
    public static boolean greater(Comparable v,Comparable w){
        return v.compareTo(w);
    }
    //交换两数的位置
    public static void change(Comparable[] a,int i,int j){
        Comparable temp =a[i];
        a[i]=a[j];
        a[j]=temp;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值