欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)的兩種常見簡單查找算法示例【快速查找與二分查找】

 更新時間:2017年09月12日 08:55:05   作者:perfect亮  
這篇文章主要介紹了Java實現(xiàn)的兩種常見簡單查找算法,結合具體實例形式分析了java快速查找與二分查找的原理與簡單實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Java實現(xiàn)的兩種常見簡單查找算法。分享給大家供大家參考,具體如下:

前言:

查找是指從一批記錄當中找出滿足制定條件的某一記錄的過程。

在平常的程序的編寫當中很多時候時用得上的,這里簡單介紹兩個查找算法

1. 快速查找:

這個是相當簡單的,以數(shù)組舉例,就用一個for循環(huán)去查找數(shù)組中需要查找的數(shù)據(jù)

例子:

public static boolean quickSearch(int a[], int x) {
    boolean f = false;
    int length = a.length;
    int i;
    for (i = 0; i < length - 1; i++) {
      if (x == a[i]) {
        f = true;
        break;
      }
    }
    return f;
}

2. 二分法(折半)查找:

二分法查找,其要求數(shù)據(jù)序列必須是呈線性結構的,也就是說數(shù)據(jù)序列必須是排過序的才能用二分法。

直接舉例(使用二分法的時候采用遞歸即可):

// 二分法方法一
public static boolean erFen(int a[], int low, int high, int x) {
    boolean f = false;
    if (low <= high) {
      if (x < a[(low + high) / 2]) {
        f = erFen(a, low, (low + high) / 2 - 1, x);
      } else if (x > a[(low + high) / 2]) {
        f = erFen(a, (low + high) / 2 + 1, high, x);
      } else if (x == a[(low + high) / 2]) {
        f = true;
      }
    }
    return f;
}
// 二分法方法二
public static boolean erFen2(int a[], int x) {
    boolean f = false;
    int length = a.length;
    int low = 0;
    int high = length - 1;
    int mid;
    while (low <= high) {
      mid = a[(low + high) / 2];
      if (mid < x)
        low = (low + high) / 2 + 1;
      else if (mid > x)
        high = (low + high) / 2 - 1;
      else if (mid == x) {
        f = true;
        break;
      }
    }
    return f;
}

更多關于java算法相關內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • 從try-with-resources到ThreadLocal,優(yōu)化你的代碼編寫方式

    從try-with-resources到ThreadLocal,優(yōu)化你的代碼編寫方式

    這篇文章主要為大家介紹了從try-with-resources到ThreadLocal,優(yōu)化代碼的編寫方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Java正則匹配中文的方法實例分析

    Java正則匹配中文的方法實例分析

    這篇文章主要介紹了Java正則匹配中文的方法,結合實例形式分析了Java針對中文、標點及引號等匹配操作相關技巧,需要的朋友可以參考下
    2017-03-03
  • MyBatisPlus中事務處理的實現(xiàn)

    MyBatisPlus中事務處理的實現(xiàn)

    本文主要介紹了MyBatisPlus中事務處理的實現(xiàn),包括事務的開啟、提交、回滾等操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • 最新jsonwebtoken-jwt 0.12.3 基本使用小結

    最新jsonwebtoken-jwt 0.12.3 基本使用小結

    這篇文章主要介紹了最新jsonwebtoken-jwt 0.12.3 基本使用小結,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-12-12
  • Java實現(xiàn)二叉查找樹的增刪查詳解

    Java實現(xiàn)二叉查找樹的增刪查詳解

    二叉查找樹(ADT)是一個具有對于樹種的某個節(jié)點X,它的左節(jié)點都比X小,它的右節(jié)點都比X大的二叉樹。本文將用Java實現(xiàn)二叉查找樹的增刪查,需要的可以參考一下
    2022-06-06
  • 談談你可能并不了解的java枚舉

    談談你可能并不了解的java枚舉

    這篇文章主要給大家介紹了一些關于你可能并不了解的java枚舉的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Java多線程synchronized同步方法詳解

    Java多線程synchronized同步方法詳解

    這篇文章主要介紹了Java多線程synchronized同步方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot后端解決跨域問題的3種方案分享

    SpringBoot后端解決跨域問題的3種方案分享

    這篇文章主要給大家分享介紹了關于SpringBoot后端解決跨域問題的3種方案,跨域指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本,它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制,需要的朋友可以參考下
    2023-07-07
  • 解決InputStream.available()獲取流大小問題

    解決InputStream.available()獲取流大小問題

    這篇文章主要介紹了解決InputStream.available()獲取流大小問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 基于Java回顧之網(wǎng)絡通信的應用分析

    基于Java回顧之網(wǎng)絡通信的應用分析

    在這篇文章里,我們主要討論如何使用Java實現(xiàn)網(wǎng)絡通信,包括TCP通信、UDP通信、多播以及NIO
    2013-05-05

最新評論