ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
020_BurbujaBD.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
Include dependency graph for 020_BurbujaBD.c:

Go to the source code of this file.

Macros

#define N   1000000

Functions

int main (int argc, char *argv[])

Macro Definition Documentation

◆ N

#define N   1000000

Definition at line 5 of file 020_BurbujaBD.c.

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 7 of file 020_BurbujaBD.c.

8{
9 long int n, i, j, k;
10 float X[N], max, min;
11 srand(time(NULL));
12 do{
13 printf("Ingrese el numero de elementos: ");
14 scanf("%ld", &n);
15 }while(n<2||n>N);
16 printf("Ingrese le valor maximo: ");
17 scanf("%f", &max);
18 printf("Ingrese el valor minimo: ");
19 scanf("%f", &min);
20 if(max<min)
21 {
22 max*=min;
23 min=max/min;
24 max/=min;
25 }
26 printf("[%f, %f]\n", min, max);
27 printf("Desordenados.\n");
28 for(i=0; i<n; i++)
29 {
30 X[i] = ((max-min)*rand())/RAND_MAX+min;
31 printf("X[%ld] = %f\n", i+1, X[i]);
32 }
33
34 for (i=0; i<n-1; i++)
35 for(j=(i%2?n-1-(i+1)/2:i/2+1); (i%2?j>i/2:j<(n-i/2)); i%2?j--:j++)
36 {
37 k = i%2?n-(i+1)/2:i/2;
38 if(i%2?X[k]<X[j]:X[k]>X[j])
39 {
40 X[k]*=X[j];
41 X[j]=X[k]/X[j];
42 X[k]/=X[j];
43 }
44 }
45 printf("Ordenados.\n");
46 for(i=0; i<n; i++)
47 printf("X[%ld] = %f\n", i+1, X[i]);
48 return 0;
49}
#define N
#define max
#define min