java算法简单复习

冒泡排序:

原理:和相邻的数对比,然后排序,最后一趟会将最小或最大排到边边。

例子:

    int []numbers={4,5,2,7};
   int temp;
     for(int i=0;i<numbers.length;i++){
         for( int j=i;j<numbers.length;j++){
             if(numbers[i]>numbers[j]){
                 temp=numbers[i];
                 numbers[i]=numbers[j];
                 numbers[j]=temp;
             }
            
         }
             
     }   for(int z=0;z<numbers.length;z++){
           System.out.println(numbers[z]);
       }
    }
  

选择排序:

原理:每一趟从待排序的数据中选择最小(或最大)的一个数据作为首数据

例子:

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int []numbers={4,5,2,7,9,6};
           int temp;
           int k;
             for(int i=0;i<numbers.length-1;i++){
                 k=i;
                 for(int j=i+1;j<numbers.length;j++){
                     if(numbers[j]<numbers[k]){
                         k=j;
                         }
                 }
                     
                         temp=numbers[i];
                         numbers[i]=numbers[k];
                         numbers[k]=temp;
                     
                    
                 }
                     
            
        

    for(int z=0;z<numbers.length;z++){
           System.out.println(numbers[z]);
       }

}
}

插入排序:

原理:把n个待排序的数据看成一个有序表和一个无序表,有序表一开始有1个数据,无序表中有n-1个数据;排序过程即每次从无序表中取出第一个数据源,将它插入到有序表中,使之成为新的有序表,重复n-1次完成整个排序过程。

例子:

    int []numbers={4,5,2,7,9,6};
           int temp;
        for(int i = 1; i<numbers.length; i++){
           temp = numbers[i]; //temp是作为插入有序表的数
           int j = i-1;
            while(j>=0 && numbers[j]>temp){//数据后移
                numbers[j+1] = numbers[j];
                j--;
            }
            numbers[j+1] = temp;//插入temp
        }
        
        
        for(int z=0;z<numbers.length;z++){//循环打印数据
            System.out.println(numbers[z]);
        }
    }

}

猜你喜欢

转载自blog.csdn.net/m0_38100754/article/details/83374756
今日推荐