Table des matières
Algorithme
pancakeSort(arr, n)
Exemple
Sortie
Maison développement back-end C++ Une question sur la commande de crêpes ?

Une question sur la commande de crêpes ?

Sep 07, 2023 pm 10:41 PM
问题 Tri des crêpes

Une question sur la commande de crêpes ?

Ici, 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
Copier après la connexion

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] << " ";
}
Copier après la connexion

Sortie

Sorted array: 11 25 25 52 54 68 75 85 98
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Résoudre le problème « erreur : redéfinition de la classe 'ClassName' » qui apparaît dans le code C++ Résoudre le problème « erreur : redéfinition de la classe 'ClassName' » qui apparaît dans le code C++ Aug 25, 2023 pm 06:01 PM

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 Comment résoudre le problème selon lequel jQuery ne peut pas obtenir la valeur de l'élément de formulaire Feb 19, 2024 pm 02:01 PM

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 Apprenez à diagnostiquer les problèmes courants de l'iPhone Dec 03, 2023 am 08:15 AM

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 Résoudre l'erreur PHP : problèmes rencontrés lors de l'héritage de la classe parent Aug 17, 2023 pm 01:33 PM

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 de conception de récompense dans l'apprentissage par renforcement Oct 08, 2023 pm 01:09 PM

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 Problèmes d'évaluation de l'effet de clustering dans les algorithmes de clustering Oct 10, 2023 pm 01:12 PM

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 Le problème de la capacité de généralisation des modèles d'apprentissage automatique Oct 08, 2023 am 10:46 AM

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 Votre Wi-Fi ne fonctionne pas sur macOS Sonoma ? Voici ce que vous pouvez faire Oct 03, 2023 pm 03:41 PM

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

See all articles