Pascal/Turbo Pascal - Ayuda con ordenamiento (burbujeo)

 
Vista:
sin imagen de perfil

Ayuda con ordenamiento (burbujeo)

Publicado por Francisco (2 intervenciones) el 15/06/2018 00:32:40
ALGUIEN ME LO PODRÍA REALIZAR POR FAVOR?!
E5EC8874-31BB-4AAD-ACA6-76C5FA35B90D
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder

Ayuda con ordenamiento (burbujeo)

Publicado por David (224 intervenciones) el 20/06/2018 22:44:02
Te propongo la siguiente solución:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
USES CRT,DOS;
 
var
  posneg,
  AUX,i , j : integer;
  TABLA : ARRAY[1..10] OF INTEGER;
 
BEGIN
  randomize;
  {Rellenamos el arreglo}
  FOR I:=10 DOWNTO 1 DO
    BEGIN
      IF ODD(I) THEN
        TABLA[I]:=I*(-1)
      ELSE
        TABLA[I]:=I;
    END;
 
  {Ordenamos todo el arreglo}
 
  fOR i:=1 TO 10  DO
    FOR J:=1 TO 9 DO
    IF (TABLA[I]>TABLA[J])  tHEN
      BEGIN
        aUX:=TABLA[J];
        TABLA[J]:=TABLA[I];
        TABLA[I]:=AUX;
      END;
  i:=0;
  {Buscamos el primer n£mero negativo para encontrar la separaci¢n entre positivos y negatigos}
  REPEAT
    inc(i);
  UNTIL TABLA[I]<0;
 
 
  posneg:=I;;
  {Como los positivos ya est n ordenados, ordenamos los negativos tal como nos piden}
  For i:= posneg-1 downto 1 do
    For j:=posneg-1  downto 1 do
           IF (TABLA[I]>TABLA[J])  tHEN
      BEGIN
        aUX:=TABLA[J];
        TABLA[J]:=TABLA[I];
        TABLA[I]:=AUX;
      END;
 
   {Presentaci¢n del arreglo para comprobar que est  correctamente ordenado}
   for i :=1 to 10 do
     writeln(tabla[i]);
   readln;
END.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar