LRendezés minimális elem kiválasztással Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./0. lAz algoritmus működése lRávezető feladat.

Slides:



Advertisements
Hasonló előadás
83. (1 pont) A felsorolt végeredmények, hatások közül karikázza be a mondatszerű leírással (szöveggel) megadott algoritmus eredményét jelölő betűt, ha.
Advertisements

Programozási alapismeretek
LEgyméretű tömbök, vektorok Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 17./0. lVektorok definiálása lVektorok definiálása kezdőértékekkel.
Típusok, változók, konstansok
Kifejezések, operandusok, operátorok
LFüggvények Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20./0. lFüggvények deklarációja és prototípusa lA függvénydefiníció lHivatkozás.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
Számítástechnika Levelezőknek
HIKGHB Németh Gábor LUF9NV Simon Attila. A programozás alapjai előadás Híradástechnikai Tanszék.
Edényrendezés Adott az alábbi rendezetlen sorozat melyen elvégezzük a Radix eljárást:
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
Programozási alapismeretek 12. előadás. ELTE  Tapasztalatok a rendezésről Tapasztalatok a rendezésről  Keresés rendezett sorozatban Keresés rendezett.
Algoritmusok Az algoritmus fogalma:
Borland C/C++ mintapéldák
Borland C/C++ mintapéldák tömbökre
Borland C/C++ mintapéldák függvényekre. 1. példa Írjunk olyan függvényt amely egy számot kiirat.
Egydimenziós tömbök. Deklarálás: var valtozónév:array[kezdőérték..végsőérték]of típus; type típusnév = array [kezdőérték..végsőérték] of típus; var valtozónév:
Borland C/C++ mintapéldák struktúrákra. 1. példa /* Egyszerû példa a struktúrák használatára */ #include #define SIZE 5 struct szemely { char nev[26];
Borland C/C++ mintapéldák mutatókra
Gombkötő Attila Lineáris egyenlet.
Mátrix függvények Keresőfüggvények
Készítette: Pető László
Informatika.
Programozás I. Horváth Ernő.
Programozás I. Horváth Ernő 1. Elérhetőségek Bauer Péter Horváth Ernő Tanszéki honlap
Programozás I. Horváth Ernő.
A C++ programozási nyelvSoós Sándor 1/14 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
LDinamikus tömbök, kétdimenziós tömbök Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 21./0. lVektorok létrehozása futásidőben, dinamikusan.
Utasítások, elágazás- és ciklusszervezés C nyelvi utasítások
Utórendezéses edényrendezés RADIX „előre”. Definíció  Az általános utórendezéses edényrendezés speciálisan r alapú d jegyű számokra felírt változata.
További vektor, mátrix algoritmusok
Megszámlálás, kiválasztás alapalgoritmusok
Előrendezéses edényrendezés – RADIX „vissza”
Rendezési algoritmusok
Tömbök és programozási tételek
Programozási nyelvek.
Programozás4 Készítette: Rummel Szabolcs
A képernyő kezelése: kiíratások
Programozás III KOLLEKCIÓK.
Programozás III KOLLEKCIÓK.
Bernát Péter Buborékos rendezés.
Programozási tételek.
Programozás I. Típus algoritmusok
Egyszerű cserés rendezés
Beillesztéses rendezés
Programozás III KOLLEKCIÓK.
Edényrendezés. Működés, elvek - Az edényrendezés nem összehasonlító rendezés. - A rendezendő elemeket nem hasonlítjuk össze, hanem a rendezés során az.
Feladatok (értékadás)
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
Edényrendezés PINTÉR LÁSZLÓ – FZGAF Adott az alábbi rendezetlen sorozat, melyen elvégezzük a Radix eljárást:
Objektum orientált programozás
Bernát Péter Minimumkiválasztásos rendezés.
Programtervezés, programozás I. 2.5 tömbök,stringek
Struktúrák a C nyelvben 1 Akkor használjuk, ha az egy egyedre jellemző különböző típusú adatokat együtt akarjuk tárolni. Lényegében típusdeklaráció. A.
„RADIX előre” edényrendezés Adott a háromjegyű bináris számok következő sorozata: 011, 111, 101, 010, 110, 001, 100 Adja meg a tömb tartalmát az egyes.
LA C++ programozás Windows környezetben Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 24./0. lA menü elkészítése lA programkód megírása.
Programozási alapismeretek
Nevezetes algoritmusok
A C++ programozási nyelv
Mediánok és rendezett minták
A maximum kiválasztás algoritmusa
Algoritmusok Az algoritmus fogalma:
Matematika I. BGRMA1GNNC, BGRMA1GNNB előadás.
A struct, az union és az enum típus
Könyvtári függvények I. Input / output kezelés függvényei
További rendező és kereső algoritmusok
C++ Standard Template Library
Konverziós operátorok
Típusok, változók, konstansok
Előadás másolata:

lRendezés minimális elem kiválasztással Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./0. lAz algoritmus működése lRávezető feladat lA rávezető feladat programja lA rendezés Chapin diagramja lA rendezés programja

Az algoritmus működése Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./1. Rendezés: célunk egy adott számsorozat növekvő sorrendbe rendezése. Példa: Adott a rendezendő sorozat: [ 7,8,4,9,1 ] Rendezés után ezt várjuk: [ 1,4,7,8,9 ]. A minimális elem kiválasz- tásával működő algoritmus jobbra követhető:

Az algoritmus működése.. a még rendezetlen részsorozat minimális elemét a részsorozat első pozíciójába visszük elemcserével. Két elem cseréjéhez egy segédváltozóra is szükség van, ahová kimenekíthetjük a V[ j ] elemet, amelynek a helyére a V[ i ] elemet akarjuk írni. Miközben i értéke végigfut j+1-től 4-ig, minden V[ i ] < V[ j ] párnál cserét hajtunk végre. Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./2. Rávezető feladat: Alakítsuk át a korábban megismert minimális elem kiválasztó algoritmusunkat úgy, hogy a minimális érték a sorozat elemeit tartalmazó vektor 0. indexű helyén adódjon ! A Chapin diagram

lA rávezető feladat struktogramja Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./3. Elemek számának bekérése: n i= 0,1,...,n-1 A vektor elemeinek bekérése: V[ i ] i= 1,2,...,n-1 V[ i ] < V[ 0 ] Segedvaltozo = V[ 0 ]; V[ 0 ] = V[ i ]; V[ i ] = Segedvaltozo; Min.elem kiválaszt. igen nem ; A minimális érték: V[ 0 ] kiiratása

lA rávezető feladat programja: Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./4. #include int V [100]; void main() { int i,n,Segedvaltozo; clrscr(); puts("Minimális elem kiválasztás\n"); printf("Elemek száma="); scanf("%d",&n); for (i =0; i <n; i++) {printf("V[ %d ]=",i ); scanf("%d",&V [ i ]); } for (i =1; i < n; i++) if (V[ i ]<V[0]) { Segedvaltozo= V[0]; // csere V[0]= V[ i ]; V[ i ]= Segedvaltozo; } printf("\nA minimális elem: V[0]= %d", V[0]); getch(); }

lA rendezés Chapin diagramja: Mivel egyre rövidülő részsorozatok minimális elemének az aktuális részsorozat első pozíciójába vitele a célunk, az egyetlen sorozaton működő előző algoritmust ciklusba kell ágyazni. Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./5. A megoldás a következő diagramon látható: Figyeljük majd meg, hogy a belső for ciklus kezdőértékét a külső ciklusváltozó aktuális értéke határozza meg.

lA rendezés Chapin diagramja.. Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./6. Elemek számának bekérése: n i= 0,1,...,n-1 A vektor elemeinek bekérése: V[ i ] i= j+1, j+2,...,n-1 V[ i ] < V[ j ] Segedvaltozo = V[ j ]; V[ j ] = V[ i ]; V[ i ] = Segedvaltozo; Rendezés igen nem ; j= 0,1,...,n-2 i= 0,1,...,n-1 A rendezett vektor elemeinek kiíratása: V[ i ]

lA rendezés programja: Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./7. #include int V [100]; void main() {int i, j, n, Segedvaltozo; clrscr(); puts("Rendezés minimális elem kiválasztással\n"); printf("Elemek száma="); scanf("%d",&n); for (i =0; i < n; i++) {printf("V [ %d ]=", i+1); scanf("%d",&V [ i ]); }

lA rendezés programja.. Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./8. for (j =0; j <n -1; j++) for (i =j +1; i <n; i++) if (V [ i ]<V [ j ]) // csere { Segedvaltozo= V [ j ]; V [ j ]= V [ i ]; V [ i ]= Segedvaltozo; } puts("\nA rendezett vektor elemei:"); for (i=0; i < n; i++) printf(" V [ %d ]= %d", i+1, V [ i ]); getch(); }