zoukankan      html  css  js  c++  java
  • 数组的高级用法

    一、冒泡排序法:

          把一个数组值由小到大排序:两两相比,只到所有数都比较完,数组是由一组由小到大的排序

            int[] array = { 9, 2, 3, 5, 4, 6, 8, 7, 1 };
            // 冒泡排序:{ 1, 2, 3,4,5,6,7,8,9};
            for (int k = 0; k < array.length - 1; k++) {
                for (int i = 0; i < array.length - 1 - k; i++) {
                    if (array[i] > array[i + 1]) {
                        int temp = array[i];
                        array[i] = array[i + 1];
                        array[i + 1] = temp;
                    }
                }
            }

    二、选择排序法:拿第一个数与后面数相比,小的交换到前面的位置,只到所有数都比较完,数组是由一组由小到大的排序。

    int[] array = { 9, 2, 3, 5, 4, 6, 8, 7, 1 };

    for (int y = 0; y < array.length - 1; y++) {
                for (int i = y; i < array.length; i++) {
                    if (array[y] > array[i]) {
                        int temp = array[y];
                        array[y] = array[i];
                        array[i] = temp;
                    }
                }
            }

    二、折半(二分)查找数据法

    要在一个有序的数据里查找一个数所在的位置可以利用对半查找,这样就可以把查询速度提高一半。

    [1,2,3,4,5,6,7,8,9,11]

    int c = 5;
            while (true) {
                int min = 0;
                int max = array.length - 1;
                int mid = (min + max) / 2;

                if (min > max) {
                    return -1;
                }

                if (array[mid] == c) {
                    return mid;
                } else {
                    if (c > array[mid]) {// 在右边
                        min = min + 1;
                    } else {// 在左边
                        max = max - 1;
                    }
                    return mid;
                }
            }

  • 相关阅读:
    模拟Struts2框架Action的实现
    Servlet中表单的重复提交
    php回调函数设计
    vagrant+xdebug
    css之vw布局
    css之rem布局
    微信jssdk支付坑
    webpack中添加px2rem-loader
    phpstorm+xdebug手机app调试
    mysql产生死锁
  • 原文地址:https://www.cnblogs.com/peter-peng/p/4589302.html
Copyright © 2011-2022 走看看