Heim  >  Artikel  >  Java  >  Java verwendet die binäre Suchmethode, um eine Beispielerklärung für die Sortiernummernindexfunktion zu implementieren

Java verwendet die binäre Suchmethode, um eine Beispielerklärung für die Sortiernummernindexfunktion zu implementieren

巴扎黑
巴扎黑Original
2017-09-19 11:39:341269Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung des Divide-and-Conquer-Algorithmus zur Implementierung der Sortierindexfunktion vorgestellt. Er analysiert die zugehörigen Betriebstechniken des Java-Divide-and-Conquer-Algorithmus zur Sortierindizierung anhand spezifischer Beispiele kann darauf verweisen

Das Beispiel in diesem Artikel beschreibt Javas Verwendung des Divide-and-Conquer-Algorithmus zur Implementierung der Sortierindexfunktion. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:


/**
 * Find the first q and return the index
 * First method is brutal force
 * Second may
 * be pid and Conquer
 *
 * @author open201
 *
 */
public class Ono {
  /**
   * f(n) = s.length = n;
   *
   * @param s
   * @param q
   * @return
   */
  public static int BrutalForceSearch(int[] s, int q) {
    for (int i = 0; i < s.length; i++) {
      if (q == s[i])
        return i;
    }
    return -1;
  }
  /**
   * f(n) = log(n)
   *
   * @param s
   * @param q
   * @return
   */
  public static int DCSearch(int[] s, int q, int startIndex, int endIndex) {
    if (startIndex > endIndex)
      return -1;
    else {
      int mid = (startIndex + endIndex) / 2;
      if (s[mid] == q)
        return mid;
      else {
        if (s[mid] > q)
          return DCSearch(s, q, startIndex,mid-1);
        else
          return DCSearch(s, q, mid+ 1,endIndex);
      }
    }
  }
  public static void main(String[] args) {
    int [] s = new int[10000000];
    for(int i = 0;i<10000000;i++){
      s[i] = i;
    }
    int q = 10000000-1;
    long startTime = System.currentTimeMillis();
    System.out.println(BrutalForceSearch(s, q));
    long endTime = System.currentTimeMillis();
    System.out.println(endTime-startTime);
    startTime = System.currentTimeMillis();
    System.out.println(DCSearch(s, q, 0, s.length - 1));
    endTime = System.currentTimeMillis();
    System.out.println(endTime-startTime);
  }
}

Das obige ist der detaillierte Inhalt vonJava verwendet die binäre Suchmethode, um eine Beispielerklärung für die Sortiernummernindexfunktion zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn