美文网首页
Android查询算法

Android查询算法

作者: kjy_112233 | 来源:发表于2017-09-21 16:18 被阅读0次

一、获取最小值

public int str(int str[]) {
    int min = str[0];
    for (int i = 1; i < str.length; i++) {
        if (min > str[i]) {
            min = str[i];
        }
    }
    return min;
}

二、递归数兔子

public static int fib(int i){
    if (i == 1){
        return 1;
    } else if (i == 2){
        return 1;
    } else {
        return fib(i - 1) + fib(i - 2);
    }
}

三、查找文件

public ArrayList<String> refreshFileList(String strPath) {
    String fileName;
    String suf = null;
    File dir = new File(strPath);
    File[] files = dir.listFiles();
    if (files == null) {
        return null;
    }
    List<String> list = new ArrayList<>();
    for (int i = 0; i < files.length; i++) {
        if (files[i].isDirectory()) {
            refreshFileList(files[i].getAbsolutePath());
        } else {
            fileName= files[i].getName();
            int j = fileName.lastIndexOf(".");
            suf = fileName.substring(j + 1);
        }
        if (suf.equalsIgnoreCase("amr")) {
            list.add(files[i].getAbsolutePath());
        }
    }
    return list;
}

四、二分查找
(1)使用递归

public static int findIndext(int[] arr, int left, int right, int abc){
    if (arr == null || arr.length == 0){
        return -1;
    }
    if (left == right){
        if (arr[left] != abc){
            return -1;
        }
        return left;
    }
    int mid = left + (right - left) / 2;
    if (arr[mid] < abc){
        right = mid - 1;
        return findIndext(arr,left,right,abc);
    } else if (arr[mid] > abc){
        left = mid + 1;
        return findIndext(arr,left,right,abc);
    } else {
        return mid;
    }
}

(2)二分查找

public static int findIndext(int[] arr, int left, int right, int abc) {
    if (arr == null || arr.length == 0) {
        return -1;
    }
    if (left == right) {
        if (arr[left] != abc) {
            return -1;
        }
    }
    while (left < right) {
        int mid = left + (right - left) / 2;
        if (arr[mid] == abc) {
            return mid;
        } else if (arr[mid] < abc) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return -1;
}

五、字符串旋转

public static String reverseString(String x){
    if(x == null || x.length() < 2)
        return x;
    return reverseString(x.substring(1, x.length())) + x.charAT(0);
}

相关文章

  • Android查询算法

    一、获取最小值 二、递归数兔子 三、查找文件 四、二分查找(1)使用递归 (2)二分查找 五、字符串旋转

  • 查询算法

    1、二分查找 二分查找的时间复杂度是O(logn),查找数据的效率非常高。不过,并不是什么情况下都可以用二分查找,...

  • 高性能编程

    包含: Android内存优化,算法优化,Android的界面优化,Android指令级优化,以及Android应...

  • BlobCache算法详解

    BlobCache算法和LruCache算法是android中的图片缓存算法。LruCache算法在日常开发中用得...

  • 自定义View-你值得收藏的方法手册

    推荐一个很良心的Android自定义View方法查询手册。 先上地址 :Android自定义View方法查询手册 ...

  • 即将学习的东西!!

    Java 垃圾回收算法 复习Java基础 Android RxJava and RxAndroid Android...

  • 仿淘宝多商品SKU组合(Android版)

    本文算法参考淘宝SKU查询算法,本文主要在于功能的实现,存在一些瑕疵,多多包涵。 查询原理这里就不做过多的赘述了,...

  • 二分查找

    二分查询算法 马戏团人塔

  • 数据库

    android和ios sqlite 多表查询 - 简书

  • Android-Room自定义类型

    Android-Room数据库(介绍) Android-Room数据库-多表查询 Android—Room 数据库...

网友评论

      本文标题:Android查询算法

      本文链接:https://www.haomeiwen.com/subject/yfqtextx.html