zoukankan      html  css  js  c++  java
  • 排序

    代码如下:

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

    只相信苦尽甘来
  • 相关阅读:
    C#的委托事件总结
    iOS的录屏功能
    Unity通过NTP获取网络时间
    Unity的弱联网Json数据传输
    Unity场景和代码合并以及UnityYAMLMerge的使用
    Unity学习--捕鱼达人笔记
    Yomob广告在cocos2dx安卓平台的Demo
    谷歌广告Admob在cocos2dx上通过回调实现底部Banner
    JZ2440 裸机驱动 第13章 LCD控制器(2)
    JZ2440 裸机驱动 第13章 LCD控制器(1)
  • 原文地址:https://www.cnblogs.com/F001li/p/7055674.html
Copyright © 2011-2022 走看看