Keresse meg a két maximális elem, a tömb

A tömb a számok, hogy megtalálják a két maximális elemet.

Ez a probléma magától értetődő, és specifikáció:

  • Nem szabad egyenlő az ezen elemek közötti;
  • vagy lehetnek különböző, de több, mint az összes többit. Például, a tömbben [4, 7, 2, 6, 9] két maximális elem, - néhány 9 és 7.

Ebben az esetben azt feltételezzük, hogy meg kell találni a két legnagyobb egydimenziós tömböt. Így lehetnek azonos vagy különböző.

A probléma megoldható két módon. A legtöbb könnyen érthető - ez a kettő használata szilárd penget. Az első úgy néz ki, az első maximum. A második - a második, az első maximális elem alkalmazásával kiküszöbölhetők feltételes ha. Egy példa a program kód:

Itt a változók MAX1 és max2 tartani lényegtelen elemek és indexek (ez elég, hogy van. Hogy. Az index mindig lehetséges, hogy az értéket).

Ügyeljen arra, hogy a tervezés, ha Max1 = 1, akkor max2. = 2 mást max2. = 1 ;. Szükséges, hogy a következő okból. Nem tudjuk, hogy mi a kezdeti értéket kell beállítani, hogy egy változó max2. Elvégre, ha az első elem a legnagyobb lesz az első, és mi értéket rendelhet 1 max2, akkor soha nem fog találni a második legnagyobb.

A ciklus meghatározó második legnagyobb először ellenőrizzük, hogy az aktuális elem szám nem ugyanaz, mint a már elszámolt Max1. Csak ezután összehasonlítjuk az értéke az aktuális elem értéke indexű elem max2.

A második lehetőség a probléma megoldására - ha mindkét maximumok keresett ugyanabban a ciklusban:

Először is, azt feltételezzük, hogy az első elem és a két tömböt a legnagyobb. Melyik az első maximumot, és hogy a második határozza meg a szerkezet if-else kívül a hurok. Hajtogat a tömb kezdődik harmadik eleme. Ha a következő elem egy tömb nagyobb, mint az első maximumot, akkor az index van írva, hogy az első változó. (Ebben az esetben, akkor lehet, hogy korábban tartott Max1 index mutatott egy második legnagyobb. Ha ez így van, akkor kell rögzíteni max2. Ehhez használja a változó barnássárga és beágyazott ha.) Ellenkező esetben ellenőrizze a változó max2 készült.

Egy példa a kódot: