【算法014】冒泡排序&二分查找法/对分查找法(非递归)

冒泡排序法

二分查找法/对分查找法

package com.example.chyer.demo;

import java.util.Arrays;

public class Test {

    public static void 冒泡排序(int[] data) {
        boolean changed = true;
        for (int m = 0; m < data.length - 1 && changed; m++) {
            changed = false;
            for (int j = 0; j < data.length - 1 - m; j++) {
                if (data[j] > (data[j + 1])) {
                    changed = true;
                    int swap = data[j];
                    data[j] = data[j + 1];
                    data[j + 1] = swap;
                }
            }
        }
    }

    public static void 二分查找(int[] args, int key) {
        if (args == null) {
            System.out.println("入参为空。。");
            return;
        }
        int low = 0;
        int high = args.length - 1;
        int index = 1;
        while (low <= high) {
            System.out.print(index + "--");
            index++;
            if (key < args[low] || key > args[high]) {
                System.out.println("未找到相关值。");
                return;
            }
            int mid = (low + high) / 2;
            if (args[mid] < key) {
                low = mid + 1;
                System.out.println(args[mid] + "<" + key + "->[" + mid + "]右半部分");
            } else if (args[mid] > key) {
                high = mid - 1;
                System.out.println(args[mid] + ">" + key + "->[" + mid + "]左半部分");
            } else {
                System.out.println("目标值位置:" + mid);
                return;
            }
        }
        System.out.println("未找到相关值。");
        return;
    }

    public static void main(String[] args) {
        int[] arr = {
                23,
                31,
                2,
                2338,
                2122,
                22,
                55,
                134,
                24000
        };
        System.out.println("排序之前:" + Arrays.toString(arr));
        冒泡排序(arr);
        System.out.println("排序之后:" + Arrays.toString(arr));

        二分查找(arr, 31);
    }
}

运行结果:

发布了29 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/chyercn/article/details/103518868
今日推荐