Hogyan kell? Elmagyaráznád a logikáját?
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
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.
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).
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]);
}
}
}
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!