jaja vi 3 videos de metodo de la burbuja y fue al unico que le entendi, me ayudaste mucho me agrada que supongas que no lo sabemos todo, ya que no es nuestro y no tenemos tu logica
Si, en Codeblocks funciona de lo más normal, pero hay algo extraño en el uso de memoria de DEV C++ y tuve que hacerlo así. A veces hay valores que se quedan en memoria y muchos programas que funcionan de forma lógica debes alterarlos para que te anden.
Disculpa, porqué se da eso? Justamente yo estaba haciendo un programa como este y me daba el ultimo valor "0", y solo el segundo ciclo le resté uno en la condición y ya entraba el número, ¿Podrías decirme a qué se debe? c:
En el ciclo for de j hay un comportamiendo indefinido cuando j vale 9 ya que estarias accediendo al elemento 9+1, es decir, al elemento 10, un elemento que no esta en tu matriz. Yo no usaria devc++ ya que con este tipo de cosas funcionan igual el programa y ni te enteras, en su lugar usaria g++ y un editor de texto como visual studio code que ademas trae un debugger. Resumiendo j tiene que ser < 9 no menor a 10
Alfonso Lopez Hola. Disculpa me podrías explicar un poco mejor el porqué se debe poner 9 y no 10, lo siento site pido esto, pero quiero aprender bien este tipo de ordenamiento.
@@antonioperezisaac19 lo que se refiere esque ponga en la condicion del segundo for n - 1 para que realize el numero de procesos adecuados ya que en la estructura de un for en la condicional siempre se realizara n + 1 iteraciones alo que quiero decir esque se realizara un proceso de mas por lo que se metera al arreglo a buscar un valor que no existe.
gracias a este video me di cuenta lo inutil que es mi profesor, nos dio todo desordenado las instrucciones despues del if cuando nos enseño... muchas gracias por el video!
Explicas super bien broth, la única observación es al desnivel del volumen en ciertas partes, pareciera que tienes un ventilador encendido y esto provoca golpes fuertes en el audio, el ambiente igual está algo ruidoso, pero de ahí todo bien, like y suscripción, saludos! ;)
Puede usarse con matrices. Tendría que hacer otro video explicándolo. Pero eso conlleva que tengo que abrir otro canal porque este estará dedicado a videojuegos en lo adelante 😅
Solo debes crear otro for independiente que corra el otro vector que tiene la otra lista ejemplo: /*este for imprime los valores del primer vector*/ for(int i = 0; i < 10; i++) { printf("%d\t",listauno[i]); } /*El for de mas abajo "listados" imprime el vector de la segunda lista, estan independientes y no se anidan como anteriormente*/ for(int j = 0; j < 10; j++) { printf("%d\t",listados[j]); }
Tambien hay otra manera, sumando si entre ambos vectores tienen 1 tamaño de 20 puedes hacerlo con solo 1 for y un bloque if, depende de tu imaginación.
@@007Dcastillo sería mucha molestia si pudieras ayudarme ? no me sale , tengo un arreglo con funcion Rand y en el cual sume el total de filas y columnas pero a la hora de ordenarlo por ese método no se como
Por asi decirlo el for de afuera garantiza que el for de dentro haga el proceso 10 veces, si al for de adentro le pongo hasta el 100. Me voy a desbordar ya que el tamaño del arreglo es solo 10 y no 100. Por eso lo hago de 10 en 10 repitiendo 10 veces, por eso el for de afuera repite todo.
Puedes hacerlo con otro ciclo for o con un while, lo colocas después de declarar las variables pero antes de que empiece el for que ordena los elementos. Si no te basta, dame unos minutos y te pongo el código en los comments.
Amigo ese programa tiene errores debido a que al momento de guardar el algoritmo lo guardas en formato c++ si lo guardas en formato c te saldrán errores
Aquí te dejo este código el cual puedes usar para que puedas leer los valores por teclado. Se ve largo porque lo hice a proposito con cada proceso por separado, el primer for para lectura, los 2 for que siguen para la organizacion y el ultimo para la impresion. #include main(){ int vector[10]; int aux; for(int i = 0; i < 10; i++){ scanf("%d",&vector[i]);
lo que pasa que puse un tamaño incial de 100, pero lo modifico en el trancurso del programa, pero no se porque, pero luego que hago metodo de burbuja y compilo y ejecuto, el primer numero siempre es cero. Te pondre aca el codigo mejor
Amigo, hay una falla en tu metodo. Declaras un arreglo de 10 lugares, tu segundo for anidado recorre 10 lugares, pero cuando j = 9 (esta en el ultimo valor del arreglo) y entra en la condicion "if" se suma uno, por lo que se compararia el indice 9 de arreglo (limite) con el indice 10 del arreglo (no existe). Mi solucion fue restar uno en la condicion "if".
en el metodo burbuja en la parte de los ciclos coloca un numero mas bajo que la cantidad de numeros en el vector si lo iniciaste en 0 ejemplo: vector[10] for(i=0;i
Es algo del IDE, en ocasiones hay que meter iteraciones extra. A veces lo que corre de cierta forma en DEV C++ no te corre en Code Blocks y así sucesivamente
hola tengo una duda, nose si alguien pudiera ayudarme, lo que pasa es que cuando lo compilo me salen estos numeros independientemente de que yo no los haya puesto: -1 2 3 4 5 6 7 Este es el codigo que hice: #include #include #include int i,j,aux; int v[7]={5,34,12,7,43,87,54}; main() { for(i=0 ; i
jaja vi 3 videos de metodo de la burbuja y fue al unico que le entendi, me ayudaste mucho me agrada que supongas que no lo sabemos todo, ya que no es nuestro y no tenemos tu logica
los profesores hacen al reves , suponen que sabes todo
La primera vez que veo que alguien lo explica tan detalladamente, me ayudo mucho. Muchas gracias!
genio total!!!!!!, saludos desde Argentina!!!!
Sos muy bueno explicando! Deberías subir más ejercicios de C!
Excelente explicación! me has aclarado perfectamente el método burbuja. Gracias!
A salvar el semestre, que buena explicación
Se te va de rango en el segundo for, la implementación correcta sería j
Si, en Codeblocks funciona de lo más normal, pero hay algo extraño en el uso de memoria de DEV C++ y tuve que hacerlo así. A veces hay valores que se quedan en memoria y muchos programas que funcionan de forma lógica debes alterarlos para que te anden.
Disculpa, porqué se da eso? Justamente yo estaba haciendo un programa como este y me daba el ultimo valor "0", y solo el segundo ciclo le resté uno en la condición y ya entraba el número, ¿Podrías decirme a qué se debe? c:
@@edgardavidvargasfuentes3015 lo correcto sería poner el segundo for con
Gracias a tu video he conseguido terminar un exercicio
JAJAJAJJAJA, esos videos que encontras ahi de hace 5 años y en 13 min te resuelve todo tu problema.
De lo mejor la explicacion
Gracias, lo explicas muy bien, es más comprensible.
Gracias man, te entendí mucho mejor que la profa de mi escuela. Te dejo mi like
uy nooo que manera de salvarme la vida....muchisimass gracias!!
Muy bien explicado, lo necesitaba para C#, pero la logica es la misma.
Si, la sintaxis solo varía un poco.
Tenes que hacer mas videos asi!! me salvaste la clase
En el ciclo for de j hay un comportamiendo indefinido cuando j vale 9 ya que estarias accediendo al elemento 9+1, es decir, al elemento 10, un elemento que no esta en tu matriz. Yo no usaria devc++ ya que con este tipo de cosas funcionan igual el programa y ni te enteras, en su lugar usaria g++ y un editor de texto como visual studio code que ademas trae un debugger. Resumiendo j tiene que ser < 9 no menor a 10
Alfonso Lopez Hola.
Disculpa me podrías explicar un poco mejor el porqué se debe poner 9 y no 10, lo siento site pido esto, pero quiero aprender bien este tipo de ordenamiento.
Tienes toda la razón, le metí ese comportamiento a propósito porque a veces no me servía, cosas como estas no hay que hacerlas en turbo c o codeblocks
Osea un vertor de n elementos, los tiene en n-1 posiciones (puesto que las posiciones se cuentan desde el 0)
@@antonioperezisaac19 lo que se refiere esque ponga en la condicion del segundo for n - 1 para que realize el numero de procesos adecuados ya que en la estructura de un for en la condicional siempre se realizara n + 1 iteraciones alo que quiero decir esque se realizara un proceso de mas por lo que se metera al arreglo a buscar un valor que no existe.
Sos un crack
gracias crak
gracias a este video me di cuenta lo inutil que es mi profesor, nos dio todo desordenado las instrucciones despues del if cuando nos enseño... muchas gracias por el video!
Gracias a ti
muy buen video! me ayudo muchisimo
AAAH muchas gracias ;u;, fue de gran ayuda
Muchas gracias, excelente vídeo, me ayudo mucho.
A la orden
Sos un Geniooo amigooo, Seguí con mas vídeos de estos!!!
Lo intentaré
eres el mejor :D
explicas muy bien!!
Muchas gracias
Sos un crack amigo explicando! Me suscribo de una :3
Muy bien explicado, gracias!! ^^
A la orden amigo.
Gracias
Me sirvio mucho el final, gracias. ; ))
Gracias!
Explicas super bien broth, la única observación es al desnivel del volumen en ciertas partes, pareciera que tienes un ventilador encendido y esto provoca golpes fuertes en el audio, el ambiente igual está algo ruidoso, pero de ahí todo bien, like y suscripción, saludos! ;)
Y sirve para un vector bidimensional?
muy bien explicado
Por qué se debe hacer con un doble for?
porque en el primer For no se ordenaria completamente de menor a mayor. Al volver a repetirlo otra vez anadiendo otro FOR se termina de ordenar.
Muchas gracias x la explicacion, lo que si tengo duda es que si esto se puede aplicar para una matriz, osea uno bidimensional
Si, hay maneras de implementarlo
graciass rey
muy buen video bro
Se podría organizar dos vectores y a su vez unirlos ordenadamente
Por supuesto, podrías crear un tercer vector. E irlos comparando y llenando un tercer vector
Hola podrias hacerlo con el de la burbuja mejorado ?
Tremenda explicacion
el metodo burbuja solo funciona para arreglos unidimensionales?, o tambien funciona para matrices?
Puede usarse con matrices. Tendría que hacer otro video explicándolo. Pero eso conlleva que tengo que abrir otro canal porque este estará dedicado a videojuegos en lo adelante 😅
Muchas gracias ! C:
Gracias
Amigo y si es en un arreglo bidimensional???
Hay un error pero la lógica está bien y me sirvió
y el archivo con el código donde lo descargo
muy bien video amigo, una consulta... como puedo unir dos listas ya ordenadas en una sola?
Solo debes crear otro for independiente que corra el otro vector que tiene la otra lista ejemplo:
/*este for imprime los valores del primer vector*/
for(int i = 0; i < 10; i++)
{
printf("%d\t",listauno[i]);
}
/*El for de mas abajo "listados" imprime el vector de la segunda lista, estan independientes y no se anidan como anteriormente*/
for(int j = 0; j < 10; j++)
{
printf("%d\t",listados[j]);
}
Tambien hay otra manera, sumando si entre ambos vectores tienen 1 tamaño de 20 puedes hacerlo con solo 1 for y un bloque if, depende de tu imaginación.
sabes como seria en un arreglo bidimensional?
Si, también es posible.
@@007Dcastillo sería mucha molestia si pudieras ayudarme ? no me sale , tengo un arreglo con funcion Rand y en el cual sume el total de filas y columnas pero a la hora de ordenarlo por ese método no se como
@@luizchavez94 De acuerdo. Debo salir pero en unas 2 horas regreso e intentaré hacerlo
@@007Dcastillo te agradezco mucho, aunque sea un ejemplo muy sencillo de un arreglo bidimensional te lo agradecere mucho
@@luizchavez94 Me podrías enviar tu código para integrarle el mío para organizarlo.
bro lo hice igual que tu pero me salen mas números de los que están en el arreglo al momento de ejecutar el programa
muy bueno pero si fueron con números decimales como sería
cual es la importancia o la razon de poner el for anidado dentgro del otro for? no entendi esa parte unu
Por asi decirlo el for de afuera garantiza que el for de dentro haga el proceso 10 veces, si al for de adentro le pongo hasta el 100. Me voy a desbordar ya que el tamaño del arreglo es solo 10 y no 100. Por eso lo hago de 10 en 10 repitiendo 10 veces, por eso el for de afuera repite todo.
9:42 QUE HACE EL PROGRAMA NACISISTA?
hola, pero cómo sería si los elementos del vector son ingresados y no fijos? espero que respondas rápido, gracias!
Puedes hacerlo con otro ciclo for o con un while, lo colocas después de declarar las variables pero antes de que empiece el for que ordena los elementos. Si no te basta, dame unos minutos y te pongo el código en los comments.
Aquí te dejo. Saludos:
#include
int main(){
int vector[10];
int aux;
for(int i = 0; i
Nos comentas si te sirvió.
@@007Dcastillo SII!! MUCHAAS GRACIAS! Se ganaron una nueva suscriptora, un millon de gracias
@@taeyeonswife3885 No hay de que, saludos 👌🏽
Esto sirve igual en c#?
Si, sirve igual. Solo tienes que adaptar la sintaxis y funcionará.
@@007Dcastillo thanks
en el for interno deberia ser menos uno que el del for externo, yaque en el if tomas uno como referencia.
Amigo ese programa tiene errores debido a que al momento de guardar el algoritmo lo guardas en formato c++ si lo guardas en formato c te saldrán errores
que pasa si el if no entra como verdadero? que puedo hacer?
Se más especifico
Lo unico raro es que despues del 11 me da un 26 y luego 35 en vez de 44 y todo el codigo esta igual
sube el codigo a las descripciones
porque una vez que hago el programa, lo compilo, el primer numero que me aparece es el cero siendo que nunca digite ese valor
Hola, cual manera utilizaste?
Debes vigilar si tienes un error en el tamaño del vector que declaraste o en el numero de iteraciones de for.
Aquí te dejo este código el cual puedes usar para que puedas leer los valores por teclado. Se ve largo porque lo hice a proposito con cada proceso por separado, el primer for para lectura, los 2 for que siguen para la organizacion y el ultimo para la impresion.
#include
main(){
int vector[10];
int aux;
for(int i = 0; i < 10; i++){
scanf("%d",&vector[i]);
}
for(int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++){
if(vector[j] > vector[j+1]){
aux = vector[j+1];
vector[j+1] = vector[j];
vector[j] = aux;
}
}
}
for(int i = 0; i < 10; i++){
printf("%d\t",vector[i]);
}
}
lo que pasa que puse un tamaño incial de 100, pero lo modifico en el trancurso del programa, pero no se porque, pero luego que hago metodo de burbuja y compilo y ejecuto, el primer numero siempre es cero. Te pondre aca el codigo mejor
#include
int main (){
int vect[100];
int i,j;
int a,b;
int aux;
printf("Ingrese numero de alumnos: ");
scanf("%d",&a);
for(i=0;i
por que se debe de poner dos bucles for?
Se puede hacer con while y do-while. Pero colocados de la misma manera
for hace mas facil cuando conocemos el tamaño, cosa que con los arreglos siempre conocemos
@@cristobal8585 Correcto
Amigo, hay una falla en tu metodo.
Declaras un arreglo de 10 lugares, tu segundo for anidado recorre 10 lugares, pero cuando j = 9 (esta en el ultimo valor del arreglo) y entra en la condicion "if" se suma uno, por lo que se compararia el indice 9 de arreglo (limite) con el indice 10 del arreglo (no existe).
Mi solucion fue restar uno en la condicion "if".
El arreglo tiene 10 lugares, pero recuerda que las posiciones van de 0 al 9. El cero cuenta, si serian 10 posiciones.
Bueno, en el if que hace la comparación podrías añadirle que j debe ser menor a 10 o menor o igual a 9 y de lo contrario inducir un break
Tienes razón xd, se solucionaría con que para el segundo for, se utilice hasta j
Lo hago igual que tú pero no me corre
Disculpa, ya pudiste?
en el metodo burbuja en la parte de los ciclos coloca un numero mas bajo que la cantidad de numeros en el vector si lo iniciaste en 0
ejemplo:
vector[10]
for(i=0;i
no se que pasa a mi ni me lo ordena y es el mismo código :C
Te pasare una versión mejorada del código
Esta mal hecho, te desbordas del vector cuando comparas en el final
Es algo del IDE, en ocasiones hay que meter iteraciones extra. A veces lo que corre de cierta forma en DEV C++ no te corre en Code Blocks y así sucesivamente
hola tengo una duda, nose si alguien pudiera ayudarme, lo que pasa es que cuando lo compilo me salen estos numeros independientemente de que yo no los haya puesto: -1 2 3 4 5 6 7
Este es el codigo que hice:
#include
#include
#include
int i,j,aux;
int v[7]={5,34,12,7,43,87,54};
main()
{
for(i=0 ; i
Si, tengo una versión más actualizada del código, cuando pueda te la paso que ando fuera jajaja
@@007Dcastillo muchas gracias!
@@SamuelSantos-ft8qy Mira, a continuación te paso uno en que la condición if se asegura de que la comparación no se desborde
@@SamuelSantos-ft8qy #include
int main(){
int vector[7];
int aux;
for(int i = 0; i