Heim Schlagzeilen Detaillierte Erläuterung des Sortieralgorithmus

Detaillierte Erläuterung des Sortieralgorithmus

Dec 04, 2017 am 10:58 AM
排序 算法 详解

Bei der sogenannten Sortierung wird eine Reihe von Datensätzen in aufsteigender oder absteigender Reihenfolge entsprechend der Größe eines oder mehrerer darin enthaltener Schlüsselwörter angeordnet. Der Sortieralgorithmus ist eine Methode zum Anordnen von Datensätzen nach Bedarf. Sortieralgorithmen haben in vielen Bereichen große Beachtung gefunden, insbesondere bei der Verarbeitung großer Datenmengen. Ein hervorragender Algorithmus kann viele Ressourcen einsparen.

Einfache Einfügungssortierung

/**
 * 将位置p上的元素向左移动,直到它在前p+1个元素中的正确位置被找到的地方
 * @param a an array of Comparable items
 */public static <AnyType extends Comparable<? super AnyType>> void insertionSort(AnyType[] a) {
    int j;    for (int p = 1; p < a.length; p++) {
        AnyType tmp = a[p];
        for (j = p; j > 0 && tmp.compareTo(a[j-1]) < 0; j--) {
            a[j] = a[j-1];        }
        a[j] = tmp;
    }
    System.out.println(Arrays.toString(a));}
Nach dem Login kopieren

Shell-Sortierung, Hügelsortierung

/**
 * @param a an array of Comparable items
 */public static <AnyType extends Comparable<? super AnyType>> void shellSort(AnyType[] a) {    int j;    for (int gap = a.length / 2; gap > 0; gap /= 2) {        for (int i = gap; i < a.length; i++) {
            AnyType tmp = a[i];            for (j = i; j >= gap && tmp.compareTo(a[j - gap]) < 0; j -= gap) {
                a[j] = a[j - gap];
            }
            a[j] = tmp;
        }
    }
    System.out.println(Arrays.toString(a));
}
Nach dem Login kopieren

Binäre Sortierung, binäre Sortierung

/**
 * @param a an array of Comparable items
 */public static <AnyType extends Comparable<? super AnyType>> void binarySort(AnyType[] a) {
    Integer i,j;
    Integer low,high,mid;
    AnyType temp;    for(i=1;i<a.length;i++){
        temp=a[i];
        low=0;
        high=i-1;        while(low<=high){
        mid=(low+high)/2;        if(temp.compareTo(a[mid]) < 0) {
            high=mid-1;
        } else {
            low=mid+1;
        }
        }        for(j=i-1;j>high;j--)
        a[j+1]=a[j];
        a[high+1]=temp;
    }
    System.out.println(Arrays.toString(a));
}
Nach dem Login kopieren

Blasensortierung >Der obige Inhalt ist ein Tutorial zu mehreren Sortieralgorithmen. Ich hoffe, dass es jedem helfen kann.

/**
 * @param a an array of Comparable items
 */public static <AnyType extends Comparable<? super AnyType>> void bubbleSort(AnyType[] a) {
    Integer i,j;
    AnyType temp;  
    for(i=1;i<a.length;i++) {  
        for(j=0;j<a.length-i;j++) {       //循环找到下沉"气泡",每下沉一位,下次比较长度较小一位   
            if(a[j].compareTo(a[j+1]) > 0) {
                temp=a[j];  
                a[j]=a[j+1];  
                a[j+1]=temp;      //将"气泡"下沉到当前比较的最后一位   
            }  
        }  
    }  
    System.out.println(Arrays.toString(a));
}
Nach dem Login kopieren
Verwandte Empfehlungen:

Beispielanalyse grundlegender, häufig verwendeter Sortieralgorithmen in JavaScript

/**
* @param a an array of Comparable items
*/public static <AnyType extends Comparable<? super AnyType>> void selectSort(AnyType[] a) {
   Integer i,j,min;
   AnyType temp;  
   for(i=0;i<a.length-1;i++) {  
       temp=a[i];            
       min=i;                   //将当前位置元素当作最小值元素(其实是要将最小值元素交换到当前)   
       for(j=i+1;j<a.length;j++) {  
           if(temp.compareTo(a[j]) > 0) { //用a[i]和后面所有元素逐个比较,找到最小指的下标并记录  
               temp=a[j];      //下一位小于前一位,则将下一位赋值给temp并继续往右移动比较   
               min=j;           //最小值的下标,赋值给min   
           }  
       }  
       a[min] = a[i];           //将最小值元素的和当前元素交换,使得当前元素为其后面所有元素中最小值     
       a[i] = temp;  
   }
   System.out.println(Arrays.toString(a));
Nach dem Login kopieren

Detaillierte Erläuterung von Beispielen für PHP-Heap-Sortieralgorithmen

Detaillierte Erläuterung mehrerer Beispiele für Sortieralgorithmen in PHP

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CLIP-BEVFormer: Überwacht explizit die BEVFormer-Struktur, um die Leistung der Long-Tail-Erkennung zu verbessern CLIP-BEVFormer: Überwacht explizit die BEVFormer-Struktur, um die Leistung der Long-Tail-Erkennung zu verbessern Mar 26, 2024 pm 12:41 PM

Oben geschrieben und das persönliche Verständnis des Autors: Derzeit spielt das Wahrnehmungsmodul im gesamten autonomen Fahrsystem eine entscheidende Rolle Das Steuermodul im autonomen Fahrsystem trifft zeitnahe und korrekte Urteile und Verhaltensentscheidungen. Derzeit sind Autos mit autonomen Fahrfunktionen in der Regel mit einer Vielzahl von Dateninformationssensoren ausgestattet, darunter Rundumsichtkamerasensoren, Lidar-Sensoren und Millimeterwellenradarsensoren, um Informationen in verschiedenen Modalitäten zu sammeln und so genaue Wahrnehmungsaufgaben zu erfüllen. Der auf reinem Sehen basierende BEV-Wahrnehmungsalgorithmus wird von der Industrie aufgrund seiner geringen Hardwarekosten und einfachen Bereitstellung bevorzugt, und seine Ausgabeergebnisse können problemlos auf verschiedene nachgelagerte Aufgaben angewendet werden.

Implementierung von Algorithmen für maschinelles Lernen in C++: Häufige Herausforderungen und Lösungen Implementierung von Algorithmen für maschinelles Lernen in C++: Häufige Herausforderungen und Lösungen Jun 03, 2024 pm 01:25 PM

Zu den häufigsten Herausforderungen, mit denen Algorithmen für maschinelles Lernen in C++ konfrontiert sind, gehören Speicherverwaltung, Multithreading, Leistungsoptimierung und Wartbarkeit. Zu den Lösungen gehören die Verwendung intelligenter Zeiger, moderner Threading-Bibliotheken, SIMD-Anweisungen und Bibliotheken von Drittanbietern sowie die Einhaltung von Codierungsstilrichtlinien und die Verwendung von Automatisierungstools. Praktische Fälle zeigen, wie man die Eigen-Bibliothek nutzt, um lineare Regressionsalgorithmen zu implementieren, den Speicher effektiv zu verwalten und leistungsstarke Matrixoperationen zu nutzen.

Detaillierte Erläuterung der Divisionsoperation in Oracle SQL Detaillierte Erläuterung der Divisionsoperation in Oracle SQL Mar 10, 2024 am 09:51 AM

Detaillierte Erläuterung der Divisionsoperation in OracleSQL In OracleSQL ist die Divisionsoperation eine häufige und wichtige mathematische Operation, die zur Berechnung des Ergebnisses der Division zweier Zahlen verwendet wird. Division wird häufig in Datenbankabfragen verwendet. Daher ist das Verständnis der Divisionsoperation und ihrer Verwendung in OracleSQL eine der wesentlichen Fähigkeiten für Datenbankentwickler. In diesem Artikel werden die relevanten Kenntnisse über Divisionsoperationen in OracleSQL ausführlich erörtert und spezifische Codebeispiele als Referenz für die Leser bereitgestellt. 1. Divisionsoperation in OracleSQL

Entdecken Sie die zugrunde liegenden Prinzipien und die Algorithmusauswahl der C++-Sortierfunktion Entdecken Sie die zugrunde liegenden Prinzipien und die Algorithmusauswahl der C++-Sortierfunktion Apr 02, 2024 pm 05:36 PM

Die unterste Ebene der C++-Sortierfunktion verwendet die Zusammenführungssortierung, ihre Komplexität beträgt O(nlogn) und bietet verschiedene Auswahlmöglichkeiten für Sortieralgorithmen, einschließlich schneller Sortierung, Heap-Sortierung und stabiler Sortierung.

Kann künstliche Intelligenz Kriminalität vorhersagen? Entdecken Sie die Möglichkeiten von CrimeGPT Kann künstliche Intelligenz Kriminalität vorhersagen? Entdecken Sie die Möglichkeiten von CrimeGPT Mar 22, 2024 pm 10:10 PM

Die Konvergenz von künstlicher Intelligenz (KI) und Strafverfolgung eröffnet neue Möglichkeiten zur Kriminalprävention und -aufdeckung. Die Vorhersagefähigkeiten künstlicher Intelligenz werden häufig in Systemen wie CrimeGPT (Crime Prediction Technology) genutzt, um kriminelle Aktivitäten vorherzusagen. Dieser Artikel untersucht das Potenzial künstlicher Intelligenz bei der Kriminalitätsvorhersage, ihre aktuellen Anwendungen, die Herausforderungen, denen sie gegenübersteht, und die möglichen ethischen Auswirkungen der Technologie. Künstliche Intelligenz und Kriminalitätsvorhersage: Die Grundlagen CrimeGPT verwendet Algorithmen des maschinellen Lernens, um große Datensätze zu analysieren und Muster zu identifizieren, die vorhersagen können, wo und wann Straftaten wahrscheinlich passieren. Zu diesen Datensätzen gehören historische Kriminalstatistiken, demografische Informationen, Wirtschaftsindikatoren, Wettermuster und mehr. Durch die Identifizierung von Trends, die menschliche Analysten möglicherweise übersehen, kann künstliche Intelligenz Strafverfolgungsbehörden stärken

Verbesserter Erkennungsalgorithmus: zur Zielerkennung in hochauflösenden optischen Fernerkundungsbildern Verbesserter Erkennungsalgorithmus: zur Zielerkennung in hochauflösenden optischen Fernerkundungsbildern Jun 06, 2024 pm 12:33 PM

01Ausblicksübersicht Derzeit ist es schwierig, ein angemessenes Gleichgewicht zwischen Detektionseffizienz und Detektionsergebnissen zu erreichen. Wir haben einen verbesserten YOLOv5-Algorithmus zur Zielerkennung in hochauflösenden optischen Fernerkundungsbildern entwickelt, der mehrschichtige Merkmalspyramiden, Multierkennungskopfstrategien und hybride Aufmerksamkeitsmodule verwendet, um die Wirkung des Zielerkennungsnetzwerks in optischen Fernerkundungsbildern zu verbessern. Laut SIMD-Datensatz ist der mAP des neuen Algorithmus 2,2 % besser als YOLOv5 und 8,48 % besser als YOLOX, wodurch ein besseres Gleichgewicht zwischen Erkennungsergebnissen und Geschwindigkeit erreicht wird. 02 Hintergrund und Motivation Mit der rasanten Entwicklung der Fernerkundungstechnologie wurden hochauflösende optische Fernerkundungsbilder verwendet, um viele Objekte auf der Erdoberfläche zu beschreiben, darunter Flugzeuge, Autos, Gebäude usw. Objekterkennung bei der Interpretation von Fernerkundungsbildern

So sortieren Sie WPS-Ergebnisse So sortieren Sie WPS-Ergebnisse Mar 20, 2024 am 11:28 AM

Bei unserer Arbeit verwenden wir häufig WPS-Software. Es gibt viele Möglichkeiten, Daten in WPS-Software zu verarbeiten, und die Funktionen sind auch sehr leistungsfähig. Wir verwenden häufig Funktionen, um Durchschnittswerte, Zusammenfassungen usw. zu ermitteln Methoden, die für statistische Daten verwendet werden können, wurden für alle in der WPS-Softwarebibliothek vorbereitet. Nachfolgend stellen wir die Schritte zum Sortieren der Ergebnisse in WPS vor. Nachdem Sie dies gelesen haben, können Sie aus der Erfahrung lernen. 1. Öffnen Sie zunächst die Tabelle, die eingestuft werden soll. Wie nachfolgend dargestellt. 2. Geben Sie dann die Formel =rank(B2, B2: B5, 0) ein und achten Sie darauf, 0 einzugeben. Wie nachfolgend dargestellt. 3. Drücken Sie nach Eingabe der Formel die Taste F4 auf der Computertastatur. In diesem Schritt wird der relative Bezug in einen absoluten Bezug umgewandelt.

Detaillierte Erläuterung der Rolle und Verwendung des PHP-Modulo-Operators Detaillierte Erläuterung der Rolle und Verwendung des PHP-Modulo-Operators Mar 19, 2024 pm 04:33 PM

Der Modulo-Operator (%) in PHP wird verwendet, um den Rest der Division zweier Zahlen zu ermitteln. In diesem Artikel werden wir die Rolle und Verwendung des Modulo-Operators im Detail besprechen und spezifische Codebeispiele bereitstellen, um den Lesern ein besseres Verständnis zu erleichtern. 1. Die Rolle des Modulo-Operators Wenn wir in der Mathematik eine ganze Zahl durch eine andere ganze Zahl dividieren, erhalten wir einen Quotienten und einen Rest. Wenn wir beispielsweise 10 durch 3 dividieren, ist der Quotient 3 und der Rest ist 1. Um diesen Rest zu ermitteln, wird der Modulo-Operator verwendet. 2. Verwendung des Modulo-Operators In PHP verwenden Sie das %-Symbol, um den Modul darzustellen