• 算法


    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 值;
        }
    }

       

  • 相关阅读:
    PHP post方式请求webservice接口以及解析返回的数据
    XYTipsWindow弹出层
    php使用rtrim时,可能会出现乱码
    带搜索的下拉框
    js实现自动给省市县地区自动赋值
    php 获取指定日期段内每一天的日期
    sqlserver数据库的备份和还原
    js判断哪个单选框应该被选中
    extjs3.1 解决列锁定,合计行不能滑动的问题
    考研数据结构-二叉树
  • 原文地址:https://www.cnblogs.com/zl181015/p/9443093.html
Copyright © 2020-2023  润新知