Explication détaillée du tri par comparaison et du tri rapide
Le tri rapide (tri rapide en abrégé) est souvent testé dans les questions d'examen écrit en raison de sa grande efficacité (O(nlogn) moyen).
La première étape pour un tri rapide est de sélectionner une "base", qui servira à comparer et échanger avec d'autres numéros. Le choix de cette "base" affectera l'efficacité du tri rapide, mais si vous choisissez la base pour le plaisir de choisir la base, cela mettra la charrue avant les boeufs. Par exemple, pour trouver la base optimale, vous devez trouver la médiane dans toute la séquence à trier, mais trouver la médiane est en réalité très coûteux. Le choix de la base porte généralement sur le premier objet, l'objet du milieu ou le dernier objet de la séquence à trier. Cet article prend comme exemple la sélection du premier élément pour faire une brève analyse et mise en œuvre du tri rapide.
En prenant comme exemple la colonne à trier {6, 5, 3, 1, 7, 2, 4}, sélectionnez le premier élément 6 comme base.
Après avoir sélectionné la base, vous devez comparer et échanger avec les éléments du tableau. Comment comparer et avec qui comparer ? La deuxième étape du tri rapide consiste à définir une "sentinelle" sur le premier élément et le dernier élément du tableau.
Après avoir sélectionné la base et réglé la sentinelle, l'étape suivante consiste à lancer la comparaison Placer la base avec la. la dernière sentinelle j est comparée en premier, et si elle est supérieure à la sentinelle j, elle est échangée avec la sentinelle i+1.
A ce moment, la base n'est plus comparée à la sentinelle j, mais à la sentinelle i. Si la base est supérieure à la sentinelle i, la sentinelle recule jusqu'à ce qu'elle le soit. supérieur à la base. Jusqu'à présent, la sentinelle j-1 est échangée en même temps.
Répétez les étapes ci-dessus et comparez la base avec sentinelle j.
Le résultat final montre que la position de la sentinelle i = la position de la sentinelle j A ce moment, la valeur de base est attribuée à cette position.
De cette façon, les nombres du côté gauche de la base 6 sont tous plus petits que lui, et les nombres du côté droit sont tous supérieurs à lui. pour effectuer les mêmes étapes sur les tableaux gauche et droit pour sélectionner la base et définir Sentinel, le tri peut être terminé à la fin.
Java
1 package com.algorithm.sort.quick; 2 3 import java.util.Arrays; 4 5 /** 6 * 快速排序 7 * Created by yulinfeng on 2017/6/26. 8 */ 9 public class Quick {10 public static void main(String[] args) {11 int[] nums = {6, 5, 3, 1, 7, 2, 4};12 nums = quickSort(nums, 0, nums.length - 1);13 System.out.println(Arrays.toString(nums));14 }15 16 /**17 * 快速排序18 * @param nums 待排序数组序列19 * @param left 数组第一个元素索引20 * @param right 数组最后一个元素索引21 * @return 排好序的数组序列22 */23 private static int[] quickSort(int[] nums, int left, int right) {24 if (left < right) {25 int temp = nums[left]; //基数26 int i = left; //哨兵i27 int j = right; //哨兵j28 while (i < j) {29 while (i < j && nums[j] >= temp) {30 j--;31 }32 if (i < j) {33 nums[i] = nums[j];34 i++;35 }36 while (i < j && nums[i] < temp) {37 i++;38 }39 while (i < j) {40 nums[j] = nums[i];41 j--;42 }43 }44 nums[i] = temp;45 quickSort(nums, left, i - 1);46 quickSort(nums, i + 1, right);47 }48 return nums;49 }50 }
Python3
1 #快速排序 2 def quick_sort(nums, left, right): 3 if left < right: 4 temp = nums[left] #基数 5 i = left #哨兵i 6 j = right #哨兵j 7 while i < j: 8 while i < j and nums[j] >= temp: 9 j -= 110 if i < j:11 nums[i] = nums[j]12 i += 113 while i < j and nums[i] < temp:14 i += 115 if i < j:16 nums[j] = nums[i]17 j -= 118 nums[i] = temp19 quick_sort(nums, left, i - 1)20 quick_sort(nums, i + 1, right)21 22 return nums23 24 nums = [6, 5, 3, 1, 7, 2, 4]25 nums = quick_sort(nums, 0, len(nums) - 1)26 print(nums)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

De nos jours, les performances et les fonctions des téléphones mobiles deviennent de plus en plus puissantes. Presque tous les téléphones mobiles sont équipés de fonctions NFC pratiques pour faciliter le paiement mobile et l'authentification de l'identité des utilisateurs. Cependant, certains utilisateurs de Xiaomi 14Pro ne savent peut-être pas comment activer la fonction NFC. Ensuite, permettez-moi de vous le présenter en détail. Comment activer la fonction nfc sur Xiaomi 14Pro ? Étape 1 : Ouvrez le menu des paramètres de votre téléphone. Étape 2 : Recherchez et cliquez sur l'option « Connecter et partager » ou « Sans fil et réseaux ». Étape 3 : Dans le menu Connexion et partage ou Sans fil et réseaux, recherchez et cliquez sur « NFC et paiements ». Étape 4 : Recherchez et cliquez sur « NFC Switch ». Généralement, la valeur par défaut est désactivée. Étape 5 : Sur la page du commutateur NFC, cliquez sur le bouton du commutateur pour l'activer.

Faire glisser l'écran dans les airs est une fonctionnalité de Huawei très appréciée dans la série Huawei mate60. Cette fonctionnalité utilise le capteur laser du téléphone et la caméra de profondeur 3D de la caméra frontale pour compléter une série de fonctions qui ne nécessitent pas de fonction. fonction de toucher l'écran, comme faire glisser TikTok depuis les airs, mais comment utiliser le Huawei Pocket 2 pour faire glisser TikTok depuis les airs ? Comment faire des captures d'écran depuis les airs avec Huawei Pocket2 ? 1. Ouvrez les paramètres de Huawei Pocket2. 2. Sélectionnez ensuite [Accessibilité]. 3. Cliquez pour ouvrir [Perception intelligente]. 4. Activez simplement les commutateurs [Air Swipe Screen], [Air Screenshot] et [Air Press]. 5. Lorsque vous l'utilisez, vous devez le tenir à 20 ~ 40 cm de l'écran, ouvrir votre paume et attendre que l'icône de la paume apparaisse sur l'écran.

Les fichiers CAO de l'iPhone 16 Pro ont été exposés et la conception est conforme aux rumeurs précédentes. L'automne dernier, l'iPhone 15 Pro a ajouté un bouton d'action, et cet automne, Apple semble prévoir d'apporter des ajustements mineurs à la taille du matériel. Ajout d'un bouton Capture Selon les rumeurs, l'iPhone 16 Pro pourrait ajouter un deuxième nouveau bouton, ce qui sera la deuxième année consécutive à ajouter un nouveau bouton après l'année dernière. La rumeur veut que le nouveau bouton Capture soit placé sur le côté inférieur droit de l'iPhone 16 Pro. Cette conception devrait rendre le contrôle de l'appareil photo plus pratique et permettre également d'utiliser le bouton Action pour d'autres fonctions. Ce bouton ne sera plus un simple déclencheur ordinaire. Concernant la caméra, à partir de l'iP actuelle

WPS est notre logiciel bureautique couramment utilisé lors de l'édition d'articles longs, les polices sont souvent trop petites pour être clairement visibles, c'est pourquoi les polices et l'ensemble du document sont ajustés. Par exemple : ajuster l'espacement des lignes du document rendra l'ensemble du document très clair. Je suggère à tous les amis d'apprendre cette étape de l'opération. Je la partagerai avec vous aujourd'hui. Les étapes de l'opération spécifiques sont les suivantes, venez jeter un oeil ! Ouvrez le fichier texte WPS que vous souhaitez ajuster, recherchez la barre d'outils de configuration des paragraphes dans le menu [Démarrer] et vous verrez la petite icône de configuration de l'espacement des lignes (représentée par un cercle rouge dans l'image). 2. Cliquez sur le petit triangle inversé dans le coin inférieur droit du paramètre d'espacement des lignes et la valeur d'espacement des lignes correspondante apparaîtra. Vous pouvez choisir 1 à 3 fois l'espacement des lignes (comme indiqué par la flèche sur la figure). 3. Ou cliquez avec le bouton droit sur le paragraphe et il apparaîtra.

Selon les statistiques du 2 mars, la TVL totale du réseau de deuxième couche de Bitcoin, MerlinChain, a atteint 3 milliards de dollars. Parmi eux, les actifs écologiques Bitcoin représentaient 90,83 %, dont BTC d’une valeur de 1,596 milliard de dollars et les actifs BRC-20 d’une valeur de 404 millions de dollars. Le mois dernier, le TVL total de MerlinChain a atteint 1,97 milliard de dollars américains dans les 14 jours suivant le lancement des activités de jalonnement, dépassant Blast, qui a été lancé en novembre de l'année dernière et est également le plus récent et tout aussi accrocheur. Le 26 février, la valeur totale des NFT dans l'écosystème MerlinChain a dépassé 420 millions de dollars américains, devenant ainsi le projet de chaîne publique avec la valeur marchande NFT la plus élevée après Ethereum. Introduction du projet MerlinChain est un support OKX

Dans notre travail, nous utilisons souvent le logiciel wps. Il existe de nombreuses façons de traiter les données dans le logiciel wps, et les fonctions sont également très puissantes. Nous utilisons souvent des fonctions pour trouver des moyennes, des résumés, etc. des méthodes qui peuvent être utilisées pour les données statistiques ont été préparées pour tout le monde dans la bibliothèque du logiciel WPS. Ci-dessous, nous présenterons les étapes à suivre pour trier les scores dans WPS. Après avoir lu ceci, vous pourrez tirer les leçons de cette expérience. 1. Ouvrez d’abord le tableau qui doit être classé. Comme indiqué ci-dessous. 2. Entrez ensuite la formule =rank(B2, B2 : B5, 0) et assurez-vous de saisir 0. Comme indiqué ci-dessous. 3. Après avoir saisi la formule, appuyez sur la touche F4 du clavier de l'ordinateur. Cette étape consiste à changer la référence relative en référence absolue.

Quelle est la différence dans le chemin « Poste de travail » dans Win11 ? Un moyen rapide de le trouver ! Comme le système Windows est constamment mis à jour, le dernier système Windows 11 apporte également de nouvelles modifications et fonctions. L'un des problèmes courants est que les utilisateurs ne peuvent pas trouver le chemin d'accès à « Poste de travail » dans le système Win11. Il s'agissait généralement d'une opération simple dans les systèmes Windows précédents. Cet article présentera en quoi les chemins de « Poste de travail » sont différents dans le système Win11 et comment les trouver rapidement. Sous Windows1

Différences et analyse comparative du langage C et de PHP Le langage C et PHP sont tous deux des langages de programmation courants, mais ils présentent des différences évidentes sur de nombreux aspects. Cet article procédera à une analyse comparative du langage C et de PHP et illustrera les différences entre eux à travers des exemples de code spécifiques. 1. Syntaxe et utilisation : Langage C : Le langage C est un langage de programmation orienté processus, principalement utilisé pour la programmation au niveau système et le développement embarqué. La syntaxe du langage C est relativement simple et de bas niveau, peut exploiter directement la mémoire, et est efficace et flexible. Le langage C met l'accent sur l'exhaustivité du programme pour le programmeur
