Une question sur la commande de crêpes ?
Sep 07, 2023 pm 10:41 PMIci, nous verrons un autre problème de tri appelé le tri des crêpes. La question est simple. Nous avons un tableau. Il faut régler ça. Mais nous ne pouvons utiliser qu’une seule opération appelée rev(arr, i). Cela fera basculer l'élément de arr de 0 à la ième position.
L'idée est comme un tri par sélection. Nous mettons à plusieurs reprises le plus grand élément à la fin pour réduire la taille du tableau. Regardons l'algorithme pour comprendre cette idée.
Algorithme
pancakeSort(arr, n)
Begin size := n while size > 1, do index := index of max element in arr from [0 to size – 1] rev(arr, index) rev(arr, size - 1) size := size - 1 done End
Exemple
#include<iostream> using namespace std; void rev(int arr[], int i) { int temp, st = 0; while (st < i) { temp = arr[st]; arr[st] = arr[i]; arr[i] = temp; st++; i--; } } int maxIndex(int arr[], int n) { int index, i; for (index = 0, i = 0; i < n; ++i){ if (arr[i] > arr[index]) { index = i; } } return index; } int pancakeSort(int arr[], int n) { for (int size = n; size > 1; size--) { int index = maxIndex(arr, size); if (index != size-1) { rev(arr, index); rev(arr, size-1); } } } int main() { int arr[] = {54, 85, 52, 25, 98, 75, 25, 11, 68}; int n = sizeof(arr)/sizeof(arr[0]); pancakeSort(arr, n); cout << "Sorted array: "; for (int i = 0; i < n; ++i) cout << arr[i] << " "; }
Sortie
Sorted array: 11 25 25 52 54 68 75 85 98
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

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

Résoudre le problème « erreur : redéfinition de la classe 'ClassName' » qui apparaît dans le code C++

Comment résoudre le problème selon lequel jQuery ne peut pas obtenir la valeur de l'élément de formulaire

Apprenez à diagnostiquer les problèmes courants de l'iPhone

Résoudre l'erreur PHP : problèmes rencontrés lors de l'héritage de la classe parent

Problèmes de conception de récompense dans l'apprentissage par renforcement

Problèmes d'évaluation de l'effet de clustering dans les algorithmes de clustering

Le problème de la capacité de généralisation des modèles d'apprentissage automatique

Votre Wi-Fi ne fonctionne pas sur macOS Sonoma ? Voici ce que vous pouvez faire
