¡Preguntas sobre programación en C++! Pídele consejo a Dios, espera en línea.
#include
usando el espacio de nombres std;
//i 1 2 3 4 5
//--- ------------------
//a[i] 0 2 4 3 1
//Requerido para ordenar desde grande a pequeño
//Burbujeo especial: el propósito de cada volteo es voltear el más corto "actual" hacia arriba
int arr[] = {0,2,4, 3, 1};//0 significa el más corto, 4 significa el más largo
int len = 5;//Hay 5 bloques
int pArr = len-1; //La inicialización apunta al último elemento de la matriz
int loc;
//Encuentra la posición loc excepto el número mínimo actual que ya está en la parte superior
void locationOfMin()
{
int i,minNum = 10000;
for(i = 0;i { p> if (minNum>arr[i]) { minNum = arr[i]; loc = i; } } } ////Invierte el número entre loc y pArr void flip() { int n = pArr - loc,m,temp; m = n/2; for (int i =0;i<=m;i++) { temp = arr[loc+i]; arr[ loc+i] = arr [pArr-i]; arr[pArr-i] = temp; } } void sort() { //Encontrar la posición del número mínimo actual locationOfMin(); // Voltear el número entre loc y pArr flip(); pArr--;//Esto se mueve desde el final hacia el frente } p> int main() { int i; for (i = 0;i { sort(); } //cout for (i = 0;i< len;i++) { cout< } cout< devuelve 0; }