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!