Kezdőoldal » Számítástechnika » Programozás » Hogyan kell? Elmagyaráznád a...

Hogyan kell? Elmagyaráznád a logikáját?

Figyelt kérdés

Külön-külön bekérünk 3 számot(a,b,c változóba). Majd írassuk ki növekvő sorrendbe! Elég ha valaki elmagyarázza a logikáját. Még jobb ha JAVA nyelven írja le. Én nem vagyok programozó, ismerősnek kell. Remélem érthető a kérdés.

köszönöm


2009. szept. 25. 16:44
 1/5 anonim ***** válasza:

1. Rendezés közvetlen elem kiválasztással, rendezzük növekvõ sorba az N db. (A(1),...,A(N)) elemeket.


Input: N (N természetes szám, N>=1), A(1),...,A(N) (rendezendõ elemek).


Output: A(1),...,A(N) elemek (az input elemek növekvõ sorrendben).


ALGORITMUS KözvetlenKiválasztás

CIKLUS I:=1-TÕL (N-1)-IG

CIKLUS J:=(I+1)-TÕL N-IG

HA (A(J)<A(I)) AKKOR A:=A(J); A(J):=A(I); A(I):=A

HA VÉGE

CIKLUS VÉGE

CIKLUS VÉGE

ALGORITMUS VÉGE


2. Rendezés minimális elem kiválasztással, rendezzük növekvõ sorba az N db. (A(1),...,A(N)) elemeket.


Input: N (N természetes szám, N>=1), A(1),...,A(N) (rendezendõ elemek).


Output: A(1),...,A(N) elemek (az input elemek növekvõ sorrendben).


ALGORITMUS MinimumKiválasztás

CIKLUS I:=1-TÕL (N-1)-IG

Index:=I

Ertek:=A(I)

CIKLUS J:=(I+1)-TÕL N-IG

HA (Ertek>A(J)) AKKOR Ertek:=A(J); Index:=J

HA VÉGE

CIKLUS VÉGE

A(Index):=A(I)

A(I):=Ertek

CIKLUS VÉGE

ALGORITMUS VÉGE


3.Buborék rendezés, rendezzük növekvõ sorba az N db. (A(1),...,A(N)) elemeket.


Input: N (N természetes szám, N>=1), A(1),...,A(N) (rendezendõ elemek)


Output: A(1),...,A(N) elemek (az input elemek növekvõ sorrendben).


ALGORITMUS BuborékRendezés

CIKLUS I:=2-TÕL N-IG

CIKLUS J:=N-TÕL I-IG (-1)-ESÉVEL

HA (A(J-1)>A(J)) AKKOR A:=A(J-1); A(J-1):=A(J); A(J):=A

HA VÉGE

CIKLUS VÉGE

CIKLUS VÉGE

ALGORITMUS VÉGE


Van még a pókerrendezés, de az most nem jut eszembe.

2009. szept. 25. 18:03
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
THX
2009. szept. 25. 19:51
 3/5 anonim ***** válasza:

Ha valóban fix 3 darab számot kell növekvő sorrendben kiírni, teljesen felesleges a fenti "bonyolult" algoritmusokat használni, elég pár "if" feltétellel megállapítani, hogy melyik a legkisebb. C# nyelven pl. így néz ki (Maga a rendezés, azaz a 3 darab if-es sor Javaban is pont ugyanígy néz ki, mindössze a beolvasás és kiírás más):


int a = int.Parse(Console.ReadLine());

int b = int.Parse(Console.ReadLine());

int c = int.Parse(Console.ReadLine());

int x;

if (a > b) { x = b; b = a; a = x; }

if (b > c) { x = c; c = b; b = x; }

if (a > b) { x = b; b = a; a = x; }

Console.WriteLine("{0}, {1}, {2}", a, b, c);


Egyébként ha tényleg Javaban kell neked, használhatod a listákat is, amik tudják rendezni magukat. C#-ban pl. így néz ki (Javaban is hasonló):

int a = int.Parse(Console.ReadLine());

int b = int.Parse(Console.ReadLine());

int c = int.Parse(Console.ReadLine());

List<int> l = new List<int>() { a, b, c };

l.Sort();

Console.WriteLine("{0}, {1}, {2}", l[0], l[1], l[2]);


Persze ha nem fix 3 darab számot kell rendezned, akkor tényleg a fenti algoritmusok egyikét vagy egy más rendező algoritmust kell használnod, akár te írod azt, akár beépített (List.Sort).

2009. szept. 26. 20:42
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:
Köszönöm!
2009. szept. 27. 13:40
 5/5 anonim ***** válasza:

Ha viszont nem a logikája érdekli csak meg akarja csinálni és java akkor:


java.utils.Arrays.sort(tomb);

Mint sok mindnre a java ban erre is van beépített"gyári" függvény.


egyszerü kis program a bemutatására:


import java.util.*;


public class Main {



public static void main(String[] args) {


int szamok[]={4,1,3,6,8};

Arrays.sort(szamok);

for (int i=0; i<5;i++){

System.out.println(szamok[i]);

}

}



}

2009. dec. 8. 08:33
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!