Keresés a 2 azonos elemeket a tömbben

Keresés 2 azonos elemeket a tömbben.

Mivel egy tömb - Mas: array [1..10] az egész;

Ebben két azonos szám. Hogyan lehet gyorsan megtalálni őket.
Tudom, hogy egy módszer:

var
# XA0; Mas: array [1..10] az egész;
# XA0; i, j, index1, indexe2: egész;
kezdődik
# XA0; index1: = 0;
# XA0; indexe2: = 0;
// töltse egy tömböt véletlen értékeket
# XA0; Véletlenszerűsítés;
# XA0; i: = 1-től 10 do mas [i]: = Random (100);
# XA0; i: = Random (9) + 1;
# XA0; mas [i]: = 8;
# XA0; i: = Random (9) + 1;
# XA0; mas [i]: = 8;
// tényleges keresési
# XA0; i: = 1-től 9 do
# XA0; # XA0; j: = i + 1-től 10 do
# XA0; # XA0; # XA0; ha mas [i] = mas [j], majd
# XA0; # XA0; # XA0; kezdődik
# XA0; # XA0; # XA0; # XA0; index1: = i;
# XA0; # XA0; # XA0; # XA0; indexe2: = j;
# XA0; # XA0; # XA0; end;
végén;

Vannak más módszerek?

ha körülményei között két azonos elem pontosan, akkor lehet használni a két, míg a gyorsabb. Lesz kevesebb művelet általában.

Ha azt szeretnénk, hogy keressen csak egy pár azonos számokat, majd miután megtalálta őket, ne felejtsük el, hogy egy break utasítással, hogy a ciklus nem folytatódott hiába.


> Ne felejtsük el, hogy egy kis szünetet

Mondja, mit gondol, hogy egy kis szünetet, exit - UTB normális hangon programozás? (UTB nem szemrehányás, UTB semmi rosszat mondani, hogy nem akar. Csak így, a teljes fejlesztés. Például igyekszem mindig mentesít ETIH két csapat)

Megjegyzések venni.
És mi a helyzet az algoritmus -, hogy vannak más algoritmusok, ez a gyorsabb?
(Írd fel a szerelő „e - nem elfogadható).


> És mi a helyzet az algoritmus -, hogy vannak más algoritmusok, gyorsabb
> Ez?

Nos, én nem emlékszem. Tudnunk kell, hogy a feltétele a problémát részletesebben. Ha UTB A programban csak egyszer csinálni (keresés) -, akkor valószínűleg UTB lesz sokkal efektívnosti.

hová megyek. Nos, például, úgy a probléma találni egy elem egy tömbben. A tranzakciók száma számomra a legjobb módja annak, hogy enni efektívnosti következetes összehasonlítása elemekkel. De amikor az azonos masivi (több) # XA0, mi kell találni egy csomó alkalommal különböző összetevők - akkor én inkább az első a maga nemében, és leggyorsabb módja, hogy használja például a bináris keresés. Ahogy rám ezen változata a program gyorsabban működik.

A rendezett bináris keresés nem szükséges, az ilyen feladat. elég ahhoz, hogy mozog egymáshoz képest, összehasonlítva elemekkel.


> Mindig próbálja mentesít ETIH két csapat

Ez csak nélkülük, gyakran nehéz csinálni, ha meg akarja érteni lyugky, szép és egyúttal hatékony kódot.


> Ez csak nélkülük, gyakran nehéz csinálni

és én vagyok Che használják költség csak körülmények között (is például, hogy kilépjen a hurok).

Ha a tömb kezdetben rendezve, a probléma megoldódott legfeljebb egy teljes menetben.

> Oleg_teacher # XA0; (03/03/11 21:11) [3] Mondd, mit gondol, hogy egy kis szünetet, exit - UTB normális hangon programozás?

Goto, szünet, Exit, Folytatás, While-Do, repeat-until - mauvais tonna. Bármilyen Pascal, C, C ++ sőt - mauvais tonna. Nem is beszélve a C #, Basic és a Java. Ezek Jedi csak írt assembly. És még ott van, próbálja meg elkerülni minden hurok „s már csak hét igaz emlékeztető :. mov, hozzáadása, vagy, B, SHR, SHL és JmpX A többit a machinációk a gonosz ..


> # XA0; bináris keresés - és ugyanaz a célja kizárólag a válogatott
> Adatok.

Tisztában vagyok.


> Meg kell gondolni a különböző feladatok

Valószínűleg. Egyetlen pár - igen. ha talál egy pár minden - csak a bináris keresés lassabb lesz.


> Oleg_teacher # XA0; (03.03.11 21:11) [3]

Persze, break, kilépés és emelje ellentétes elvei strukturált programozás, de nélkülük, IMHO, néha kód sokkal nehezebb megragadni, mint velük. Például, ha ellenőrizte sok feltétel, úgy tűnik számomra, hogy a kód érthető, ha nem tesz eleget a feltételeknek kiléptető csinálni, ahelyett, hogy a lánc else if. A hurok a Delphi nem teszi hozzá kilépés feltételeit, így törni, szünet nélkül nem. # XA0 és nem emel hibakezelés egy rémálommá válik :)


> Che használják költség csak körülmények között (is, például a
> Ki a hurok).

Hogy-hogy?)
ha a kifejezés akkor Vyyti_iz_tsikla?
A Vyyti_iz_tsikla - meg kell érteni nem szakítja. és goto kuda_to_za_predely_tela_tsikla?)


> # XA0 és nem hoz létre egy lánc else if

tényleg így tettem, amikor Nada volt szükség.

> # XA0; A hurok a Delphi nem teszi lehetővé, hogy a feltételek hozzáadása
> exit

És miért csak azért, hogy a szeretet?

bár mind értem UTB amatőr. De egyik oldalak találtam Leírás:
leírás
Exit eljárást azonnal megszakítja az aktuális függvény vagy eljárás.

Amikor a funkció eredmény értéke tartalmazza az utolsó.

Figyelmeztetés: óvatosan - ez teszi a kód karbantartását nehéz.


> Használata közben majd amikor nada

Furcsa lenne, ha meg lehetne használni, akkor, amikor a „Nenad”

De tettem valamit a másik.
Tegyük fel, hogy „algoritmikus diszpozíció” már kialakult olyan, hogy nincs semmilyen módon nem lehet kilépni feltétel a hurok meghatározza az előzetes vagy utólagos feltételt, illetve közben, vagy ismételje meg a ciklust.

És mit fogsz csinálni?)


> Lehetővé teszi a kód karbantartási nehéz

Ahhoz, hogy a menyasszony és a kanca)

értetlen majd valahol nada ciklus helyezze kijárat? Vseravno lenne használni. kell elérni, amit a feltétellel, hogy miért UTB állapotát és nem választotta ki a kimeneti állapotát tsykla közben vagy ismételje meg.

Exit - ez nem a kiutat a ciklust, és ez itt?
Beszélünk a Break - üzemben megszakítja a hurok, az adó ellenőrzés a nyilatkozatot követően a „záró zárójel” ciklust.


> Miért UTB állapotát és nem választotta ki a kimeneti állapotát tsykla
> Amíg vagy ismételje meg.

Mivel gyakran előfordul helyzetet. ha a ciklus meg kell szakítani, amíg az már fut következő iterációban

Itt egy egyszerű példa:

> Bár igaz do
> próbálja
> # XA0; DoSomething;
> kivéve
> # XA0; break;
> End;

Átírni nélkül Break - és kapsz terjedelmes és csúnya kódot.


> Ez a Break

Ja, bocs rosszul fejezte ki.

> Ez kimarad az már fut a következő iterációban

valamint vidám is elképzelhető, hogy a UTB kell használni, és hol. Nos, általában egyértelmű, hogy ezek a parancsok használhatók, és semmi baj nincs biztosításában. A legfontosabb nem összezavarodnak.


> Átírása nélkül használata Break - és kapsz terjedelmes
> És csúnya kódot.

nesoglashus:
f: = True;
míg f do
megpróbál
DoSomething;
kivéve
f: = False;
végén;

És ami engem illet, mint egy nagyon személyes:

függvény # XA0; DoSomething: logikai;
kezdődik
# XA0, próbálja
# XA0; # XA0;<.>
# XA0, kivéve
# XA0; # XA0; Eredmény: = false;
# XA0; end;
végén;

míg DoSomethig tenni;

És ha megpróbáljuk leszámítva végi tiszta belső DoComething (), és nem egy szilárd kóser.

Nos, nem járul hozzá)
De akkor nem panaszkodnak, hogy ez a „csere”:
1. Több méretben iskh.teksta (+ továbbra is szükség van arra, hogy egy változó)
2. Elvégzi legalább egy „extra” ellenőrzése, hogy de minimálisan gyengébb az eredeti teljesítményét.

> Oleg_teacher # XA0; (03.03.11 23:28) [26] nesoglashus:

IMHO, a dobozok még több nyomorúságot, mint Goto. Egyszerűen túl a kódot Goto vizuálisan találni, mint hogy elemezze a hurok kilépési feltétel, majd megtalálni, ahol a beállított kódot, vagy, hogy az érték a zászló. És ha néhány zászlók, és nem az egyetemes bánat.

Egyébként egyetértek (S) - ó lehangoló nézd meg a kódot, annál több ellenfél, egy csomó egyébként szétszórt beolvasott zászlókat.
Zászlók jók és szükségesek, ahol nélkülük egyszerűen nem lehet csinálni „egy kis vér”, azaz veszélyeztetése nélkül az olvashatóságot a kódot, és átmenő teljesítményt az algoritmus.

[30] nem nehézkes, de csúnya. o (

> Pajzán # XA0; (03.03.11 21:31) [12]
> Goto szünet, Exit, Folytatás, While-Do, repeat-until - mauvais tonna.
> Minden Pascal, C, C ++ sőt - mauvais tonna. Én nem is beszélve
> C #, Basic és a Java. Ezek Jedi csak írt assembly.
> És még ott van, próbálja meg elkerülni minden hurok „s. Csak
> Hét igaz emlékeztető: mov, hozzáadása, vagy, B, SHR, SHL és JmpX.
> Az összes többi a machinációk a gonoszok.

Az igazság ige, fiam, a többi a gonosztól FSE.

Meg kell ölni egy ilyen kódot. Lassan és élvezettel.

Faberge, azok azonosak, de itt vagyunk egy kis szünetet értelmezni látszólag)

csúnya # XA0; [29] - még talán igen! De talán ezek nélkül, és nem lehet csinálni. Még mindig érzem a nagy nyomorúság goto pogrammirovaniya.

Ui Tehát amikor sobireshsya megölni - használja kódex 24. Csak Vegye szünet. Ezután lassú lesz. Ez azt jelenti, örökre.


> # XA0, ellentétben a Tóra - igen. De jobb, mint mindig, az ügyfél,
> Ahelyett, hogy a Szentírás. Hogyan tegye TK - úgy legyen.

Igen, ő nemcsak ellentmond a Tórát, hanem a Korán, a saría és Tariqa együtt.

Vannak ügyfelek, akik TK alkatrészek bydlokoda kötni?

Szünet, Folytatás, Exit - szabályt.
Goto és ideiglenes zászlók - szar.

P. P. S. Érdekes ez a vita néz szemszögéből C programozók társult.

Igen, van néhány)
Nadys célzott, hogy a Vevő egy ilyen példány.
Azt átírta a Delphi ott valaki BCB-projekt, kisebb funkcionális # XA0; kiegészítései.
Tehát, egy hordozható eredeti, ez volt ponahrenovercheno - haj állni a végén)
Őszintén kérte az ügyfél - mondod, akkor mindez hogyan fog rake valamit. És azt mondják, hogy miért dig kétszer - nekem, majd akkor, ha valaki nem elég ahhoz, hogy nekem egyszer gyötrelem, hogy akkor majd csendes volt, és könnyen kezelhető a projektben. Gyerünk, mondjuk, egy másik Podkin malyas dollárt -, és hozok ezt rémálom isteni természetben)
Az ügyfél nem tagadja, hogy a hordozható külseje csúnya, mondta. tészta, azt mondják, már nem ad, azt mondják, nagyon kevés, ha vállalják, hogy működik, akkor tegye, amit mondanak, és nem vitatkozni magasztos kérdések)

Case, persze, vannak különböző zavsegda :)


> Én is úgy érzem nagy nyomorúság goto pogrammirovaniya.

Fontolja meg, de magában.

Ui
Az esetek különbözőek, csak tegnap dobta Fortran Pascal.
Voltak 50 darab goto. Miért kell törni az algoritmus, ami működik, de még mindig elkapni a hibákat?
Goto történik semmi, nem az Isten küldötte a Karoo.

>> Az esetek különbözőek, csak tegnap dobta Fortran Pascal.

Ez az egyik dolog - a rutin fordítása nagy mennyiségű kódot a nyelvet, amelyen goto valóban szükséges parancsokat. És még egy dolog - az átadása programozási szokások egyik programozási nyelvről a másikra.

„Ez a programozó írhat Fortran programok minden programozási nyelv” (C)

Kívánt ikont? Blue? Vagy piros? Vagy nem, annál jobb. barna. Az állapota „Mester Fortran”.

Ui Azt gondolta volna, hogy a BASIC.

Ez így van, ez lehet tenni gyorsan a megfelelő technológiát, mint a
adja meg a nyelvet, de meg kell dolgozni egy csomó fejlesztésére makro


> Pajzán # XA0; (04.03.11 09:43) [44]
>
> Ui Azt gondolta volna, hogy a BASIC.

Számomra ez nem szükséges eldönteni, hogy mit akarok.
Amit én szeretnék, csinálok a helyzetet, de nem adnak tanácsot, hogy az út a boldogsághoz.


> Az a nyelv, amelyen goto valóban szükséges parancsokat.

Nos, még mindig emlékszem Fortran 66.
Most goto nem szükséges, de használható.

Ismét: „Ez a programozó írhat Fortran programok minden programozási nyelv” (C)

Felvette az orrod is nem szükséges.
De miután dugta körül.
Azon egyszerű oknál fogva, hogy az orr.
Nem lenne egy orr - nem bütyköl.

Ugyanez a helyzet a goto.

Ui Bocsáss meg, a rajongók vegye ki az orrát, ha nem tudtam segíteni uschimil jogaikat.


> Most goto nem szükséges, de használható.

gének

Kapcsolódó cikkek