Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
|
Máme v škole takúto úlohu:
Napíšte program na presun prvkov jednorozmerného poľa (vygenerovaného
náhodne s hodnotami od -50 do 50) tak, aby na začiatku boli záporné, potom nulové
a nakoniec kladné čísla. Zabezpečte riešenie jediným prechodom poľa.
Upresnenie zadania: netreba zoraďovať čísla od najmenšieho po najväčšie, stačí, keď najprv budú v poli uložené záporné čísla, potom nuly a nakoniec kladné čísla.
Skúšal som metódu Bubble-sort, tá mi však fungovala len ak som si vytvoril druhé pole, doňho nakopíroval hodnoty prvého a tam som ich zoradil. Fungovalo to aj v jednom cykle spoločne s inicializovaním prvého poľa. Problém je, že nemôžme použiť dve polia, ale iba jedno. Čiže v jednom cykle inicializovať jedno pole a hneď aj usporiadať čísla v ňom. Vie niekto pomôcť?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Rozdeliť čísla na záporné a kladné nie je ťažké. Máš dva indexy - ľavý(0) a pravý(N). Ľavý zvyšuješ a ak narazíš na kladné číslo, začneš hýbať pravým(znižovať). Ak ním narazíš na záporné, prehodíš prvky na týchto indexoch a pokračuješ takto ďalej, kým sa nestretnú.
Ako dostať týmto spôsobom do prostriedku nuly, ma ale teraz nenapadá.
Skús rozmýšľať týmto smerom a snáď na niečo prídeš.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
|
Díky moc, funguje to. Dám sem aj kód, až by ho niekto potreboval:
Kód: public class JavaCvicenie { public static void main(String[] args) { final int n = 100;//velkost pola int pole[] = new int[n]; int begin = 0, end = n-1, temp; //naplnenie pola for (int i = 0; i < n; i++){ temp = (int) (-50 + Math.random() * 100); System.out.print(temp + " "); if (temp < 0){ pole[begin] = temp; begin++; } if (temp > 0){ pole[end] = temp; end--; } } System.out.println();//odriadkovanie //vypis pola for (int i = 0; i < n; i++) System.out.print(pole[i] + " "); } }
@BX: Nuly sa vždy nejako uspodiarajú samé
|
|
Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Databázy | 7 | 841 | 30.09.2010 20:29 camo | | v PHP, ASP | 4 | 709 | 05.08.2009 17:38 rooobertek | | v Assembler, C, C++, Pascal, Java | 8 | 1903 | 12.03.2010 21:48 juho | | v Assembler, C, C++, Pascal, Java | 3 | 648 | 08.10.2014 20:31 Lessik | | v Assembler, C, C++, Pascal, Java | 1 | 510 | 18.02.2012 22:01 coldak | | [ Choď na stránku: 1, 2 ] v Assembler, C, C++, Pascal, Java | 35 | 5562 | 09.03.2009 17:14 tlacitko Enter | | v Assembler, C, C++, Pascal, Java | 1 | 907 | 02.04.2014 12:41 XOLOO | | v PHP, ASP | 5 | 955 | 06.02.2010 17:44 Ďuri | | v PHP, ASP | 22 | 1564 | 21.08.2008 16:54 p360t | | v PHP, ASP | 3 | 478 | 21.03.2010 10:27 Ďuri | | v Assembler, C, C++, Pascal, Java | 11 | 1102 | 14.10.2007 19:35 Integer | | v Assembler, C, C++, Pascal, Java | 1 | 1128 | 04.01.2010 17:05 emigrate | | v Databázy | 2 | 873 | 11.08.2008 19:40 Speeder21 | | v PHP, ASP | 6 | 515 | 04.06.2010 10:42 camo | | v PHP, ASP | 3 | 502 | 23.11.2011 23:32 walther | | v PHP, ASP | 2 | 256 | 06.12.2012 18:36 JanoF |
|