zoukankan      html  css  js  c++  java
  • 算法

    1、冒泡算法

    冒泡法排序的思路: (嵌套循环排序)
    第一步:从第一位开始,把相邻两位进行比较 
    如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的 
    第二步: 再来一次,只不过不用比较最后一位 
    以此类推

    public class HelloWorld {
        public static void main(String[] args) {
            int a [] = new int[]{18,62,68,82,65,9};
            //排序前,先把内容打印出来
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i] + " ");
            }
            System.out.println(" ");
            //冒泡法排序
         
            //第一步:从第一位开始,把相邻两位进行比较
            //如果发现前面的比后面的大,就把大的数据交换在后面
             
            for (int i = 0; i < a.length-1; i++) {
                if(a[i]>a[i+1]){   
                    int temp = a[i];
                    a[i] = a[i+1];
                    a[i+1] = temp;
                }
            }
            //把内容打印出来
            //可以发现,最大的到了最后面
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i] + " ");
            }
            System.out.println(" ");
             
            //第二步: 再来一次,只不过不用比较最后一位
            for (int i = 0; i < a.length-2; i++) {
                if(a[i]>a[i+1]){   
                    int temp = a[i];
                    a[i] = a[i+1];
                    a[i+1] = temp;
                }
            }
            //把内容打印出来
            //可以发现,倒数第二大的到了倒数第二个位置
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i] + " ");
            }
            System.out.println(" ");        
             
            //可以发现一个规律
            //后边界在收缩
            //所以可以在外面套一层循环
             
            for (int j = 0; j < a.length; j++) {
                for (int i = 0; i < a.length-j-1; i++) {
                    if(a[i]>a[i+1]){   
                        int temp = a[i];
                        a[i] = a[i+1];
                        a[i+1] = temp;
                    }
                }
            }
             
            //把内容打印出来
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i] + " ");
            }
            System.out.println(" ");        
        }
    }

    2、 增强型for循环(注:增强型for循环只能用来取值,却不能用来修改数组里的值

    public class HelloWorld {
        public static void main(String[] args) {
            int values [] = new int[]{18,62,68,82,65,9};
            //常规遍历
            for (int i = 0; i < values.length; i++) {
                int each = values[i];
                System.out.println(each);
            }
            
            //增强型for循环遍历
            for (int each : values) {
                System.out.println(each);
            }
            
        }
    }

     3、递归算法。

    1   2  3  5  8  13。。。。计算第N位的值。

    public class test2 {
        public int 值 = 0;
    
        public static void main(String[] args) {
            test2 te = new test2();
            System.out.println(te.递归(5));
        }
    
        public int 递归(int i) {
            if (i <= 2) {
                值 = i;
            } else {
                值 = 递归(i - 1) + 递归(i - 2);
            }
            return 值;
        }
    }

       

  • 相关阅读:
    MongoDB 生态 – 可视化管理工具
    SOLR对多个(关联)表创建索引
    sublime 插件zen coding
    12/12工作笔记
    阅读《深入理解JavaScript定时机制》
    继续谈论XSS
    支付宝快捷支付模型
    谈论XSS
    生产者消费者模型
    如何根据iframe内嵌页面调整iframe高宽续篇
  • 原文地址:https://www.cnblogs.com/zl181015/p/9443093.html
Copyright © 2011-2022 走看看