zoukankan      html  css  js  c++  java
  • 2017/12/30Java基础学习——排序算法の选择法与冒泡法的比较

     1 //题意要求:使用选择法、冒泡法将数组按从小到大的顺序排列
     2 public class HelloWorld {
     3     public static void main(String[] args) {
     4         //选择法排序的思路: 
     5         //把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来 
     6         //比较完后,第一位就是最小的 
     7         //然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来 
     8         //比较完后,第二位就是第二小的 
     9         //以此类推,归纳总结形成for嵌套
    10         System.out.println("由小到大排序选择法一:数组a");
    11         int a [] = new int[]{18,62,68,82,65,9}; 
    12         for (int i = 0; i < a.length - 1; i++) { //一共比较了(a.length-1)次
    13             for (int j = i + 1; j < a.length; j++) {
    14                 if(a[j] < a[i]){
    15                     int miccle = a[i];
    16                     a[i] = a[j];
    17                     a[j] = miccle;
    18                 }        
    19             }                 
    20         }
    21           for (int i = 0; i < a.length; i++) {//输出用选择法排序的结果
    22             System.out.print(a[i] + " ");
    23         }
    24         System.out.println();
    25 //        冒泡法排序的思路: 
    26 //        第一步:从第一位开始,把相邻两位进行比较 
    27 //        如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的 
    28 //        第二步: 再来一次,只不过不用比较最后一位 
    29 //        以此类推,归纳规律如下        
    30         System.out.println("用冒泡法从大到小排序");
    31         int c [] = new int[]{18,62,68,82,65,9};
    32         for (int i = 0; i < c.length - 1; i++) {//长度为c.length的数组需要循环(c.length - 1)轮
    33             for (int j = 0; j < c.length - 1 - i ; j++) {
    34                 if(c[j] < c[j + 1]){
    35                     int mic = c[j];
    36                     c[j] = c[j + 1];
    37                     c[j + 1] = mic;
    38                 }
    39             }
    40         }
    41         for (int k = 0; k < c.length; k++) {//输出冒泡法排序后的结果
    42             System.out.print(c[k] + " ");
    43         }
    44     }
    45 }

    详细规律请参考链接: 选择法排序 和 冒泡法排序

  • 相关阅读:
    Nginx和PHP-FPM的启动、重启、停止脚本分享
    [Linux]Fedora19修复被Windows干掉的引导
    [Linux]RHEL/CentOS6配置tomcat使用80端口(与httpd整合)
    [Linux]SAMBA共享打印机
    [Linux]配置Logwatch使用第三方smtp发送电子邮件
    [oVirt]在双网卡网络环境下使用oVirt LiveCD
    走进Linux世界主题讲座纪录
    mysql用户及权限复制
    记一次失败的K8S安装部署
    HTTP状态码与爬虫
  • 原文地址:https://www.cnblogs.com/lijiehua/p/8148672.html
Copyright © 2011-2022 走看看