• 排序


    代码如下:

    package ClassDemo; import java.util.Arrays; public class TestLinearSearch {
    public static void main(String[] args) {
    int[] list = {1,7,2,3,4,5,6,8,9,10};
    // int i = linearSearch(list, 1);
    // int i = binarySearch(list, 9);
    // System.out.println(i);
    System.out.println(Arrays.toString(list));
    // arraySelectionSort(list);
    arrayInsertionSort(list);
    System.out.println(Arrays.toString(list));
    }

    private static void arrayInsertionSort(int[] list) {
    for (int i = 1; i < list.length; i++) {
    //保存当前元素
    int currentElement = list[i];
    int k;

    for (k = i - 1; k >= 0 && list[k] > currentElement; k--) {
    list[k + 1] = list[k];
    }

    list[k + 1] = currentElement;
    }

    } /**
    * 选择排序数组list
    * @param list
    * @return
    */
    private static void arraySelectionSort(int[] list) {
    for (int i = 0; i < list.length; i++) {
    int currentMin = list[i];
    int currentMinIndex = i;
    //找到最小的元素currentMin,currentMinIndex
    for (int j = i + 1; j < list.length; j++) {
    if (currentMin > list[j]) {
    currentMin = list[j];
    currentMinIndex = j;
    }
    }
    //将最小的元素list[currentMinIndex]和list[i]互换
    if (currentMinIndex != i) {
    list[currentMinIndex] = list[i];
    list[i] = currentMin;
    }
    }
    } /**
    * 线性查找数组list中值为key的元素,返回该元素的下标i, 如果找不到返回-1
    * @param list 需要查找的数组
    * @param key 需要查找的元素
    * @return i 返回的下标
    */
    public static int linearSearch(int[] list, int key) {
    for (int i = 0; i < list.length; i ++) {
    if (key == list[i]) {
    return i;
    }
    }
    return -1;
    }
    /**
    * 二分查找数组list中值为key的元素,返回该元素的下标i, 如果找不到返回-1
    * @param list 需要查找的数组
    * @param key 需要查找的元素
    * @return i 返回的下标
    */
    public static int binarySearch(int[] list, int key) {
    int low = 0;
    int high = list.length - 1;
    while (high >= low) {
    int mid = (low + high) / 2;
    if (key < list[mid]) {
    high = mid -1;
    } else if (key == list[mid]) {
    return mid;
    } else {
    low = mid + 1;
    }
    }
    return -1;
    }
    }

    只相信苦尽甘来
  • 相关阅读:
    MyEclipse------文件字符输入,输出流读写信息
    MyEclipse------快速写入内容到指定目录下的文件(字节输出流)
    MyEclipse------快速读取特定目录下的文件的内容(字节输入流)
    MyEclipse------在特定目录创建文件和书写内容
    MyEclipse------遍历某个路径下的(所有或特定)文件和目录
    MyEclipse------File类的各种方法
    MyEclipse------如何在特定目录下创建文件夹
    MyEclipse------PreparedStatement使用方法
    使php支持mbstring库
    web页面性能测试
  • 原文地址:https://www.cnblogs.com/F001li/p/7055674.html
Copyright © 2020-2023  润新知