Ayuda algoritmo de ordenacion

Iniciado por 0and6, 1 Agosto 2015, 03:51 AM

0 Miembros y 1 Visitante están viendo este tema.

0and6

Ola tengo un problema, es que estoy haciendo un algoritmo para ordenar un arreglo, lo estoy haciendo de la siguiente manera se que existen maneras mas rapidas, pero apenas comienzo y quiero hacerlo por mi cuenta, asi que se hizo el siguiente algoritmo el problema es que no ordena el primer numero, asi que si tienen una solucion para este algoritmo les agradeceria


#include<iostream>
#include<stdio.h>
using namespace std;

int main(int argc, char *argv[]){
   int enteros[] = {10,9,7,4,2,6,3,5,8,1} ;
   int aux, c;

   for(c = 0; c < 10 ; c++){
       if(enteros[c] > enteros[c+1]){
           aux = enteros[c];
           enteros[c] = enteros[c+1];
           enteros[c+1] = aux;
           c = 0;
       }
   }

   for(int i = 0; i < 10; i++){
       printf("%d\n",enteros[i]);
   }
   return 0;
}


Mod: Los códigos deben ir en etiquetas GeSHi

engel lex

los errores de tu algoritmo...

for(c = 0; c < 10 ; c++){
        if(enteros[c] > enteros[c+1]){


tu algoritmo tiene 10 elementos (del 0 al 9) si c = 9; entonces se traducirá en

enteros[9] > enteros[9+1]

causando una violación de memoria...

segundo... en linea 13
Citarc = 0;

tu algoritmo hará un ciclo infinito

tercero... el algoritmo que intentas hacer se llama "ordenamiento de (o por) burbuja"
el asunto es que un solo ciclo no basta...
despues de comparar tu arreglo
{10,9,7,4,2,6,3,5,8,1}
quedaría
{10,9,7,4,6,3,5,8,2,1}

solo habría flotado el 2... tienes que hacer doble ciclo

for(...
  for(..
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

0and6

 :D oye la neta pues gracias ya he bucado ese algoritmo y la neta esta chido he podido solucionar mi problema  gracias  ;-) ;-) ;-)

ah y por editar el codigo es que no sabia que era con esas etiquetas