zoukankan      html  css  js  c++  java
  • 常用的两种算法:冒泡排序和选择排序

    1.冒泡排序(排序后的结果 :从小到大):

    class demo1{
    
        public static void main(String[] args){
    
             int[] strArr = new int[]{1, 2,57,48,24};
             int temp = 0;
    
             for(int i = 0; i < strArr.length - 1; i++){
    
                 for(int j = 0; j < strArr.length - 1 - i; j++){
                  
                 if(strArr[j] > strArr[j + 1]){
                 temp = strArr[j];
                 strArr[j] = strArr[j + 1];
                 strArr[j + 1] = temp;
                 }
    
                }  
           }
             for(int i = 0; i < strArr.length; i++){
                System.out.print(strArr[i]);
                  }
       }
    }
    

     因为每次循环去执行if里面的语句,而if里面总是strArr[j]与strArr[j + 1]作比较,所以假如有五个元素要进行排序的话,(外面的for语句每走一次叫一个来回)第一次走一个来回并(第二个for循环)最后一次循环时,应该是strArr[3]与strArr[4]作比较,所以j 最大等于3,因此 j < strArr.length - 1 - i。

     2.选择排序(排序后的结果 :从大到小):

    class demo1{
    
        public static void main(String[] args){
    
             int[] strArr = new int[]{1, 2,57,48,24};
             int temp = 0;
    
             for(int i = 0; i < strArr.length - 1; i++){
    
                 for(int j = i + 1; j <= strArr.length - 1 ; j++){
                  
                 if(strArr[i] < strArr[j]){
                 temp = strArr[j];
                 strArr[j] = strArr[i];
                 strArr[i] = temp;
                 }
    
                }  
           }
             for(int i = 0; i < strArr.length; i++){
                System.out.print(strArr[i]);
                  }
       }
    }
    

     选择排序的思路是:每次拿出前面的一个数跟后面的其它的数依次作比较

  • 相关阅读:
    水浒卡
    百家姓
    祖宗十八代
    《三国演义》里到底描写了多少个人物,你知道吗?
    通用路由封装简介和基本配置方法
    DHCP Snooping的实现
    结构化的网络故障检测与排除方法
    结构化网络维护
    4000汉字无一重字
    (1)centos7 安装与分区
  • 原文地址:https://www.cnblogs.com/WNof11020520/p/6076259.html
Copyright © 2011-2022 走看看