Jednorozměrné pole - konzole
Requisitos de finalización
3. C#
3.7. Seřazení prvků pole
Pro seřazení prvků pole vzestupně je v hlavním programu volána metoda bez návratu s názvem SeraditPole. Tato metoda využívá třídění Bubble Sort, kde jsou porovnány jednotlivé dvojice sousedních prvků. Pokud je aktuálně procházený prvek větší než následující prvek, jsou tyto prvky vzájemně prohozeny. Pokud došlo alespoň k jednomu prohození sousedních prvků, celý vnitřní cyklus s krokem pro procházení od prvního do předposledního prvku je znovu opakován. Pokud nedošlo k prohození ani v jedné porovnávané dvojici sousedních prvků, není již vnější cyklus s podmínkou na konci prováděn. Následující zdrojový kód obsahuje deklarace metody SeraditPole - viz Kód 1.
/// <summary> /// Metoda bez návratu - vzestupné řazení prvků pole /// </summary> /// <param name="n"> počet prvků </param> /// <param name="pole"> vektor, který má být setříděn vzestupně </param> static void SeraditPole(int n, int[] pole) { /* Deklarace: 'pom' ... pomocná proměnná pro dočasné uložení prvku; 'b' ... logická proměnná * obsahující informaci, zda došlo k prohození některých sousedních prvků; 'i' ... index (pozice) * prvku vektoru */ int pom; bool b; do { // Nedošlo k prohození sousedních prvků b = false; // Pro všechny prvky od počátečního do předposledního prvku for (int i = 0; i < n - 1; i++) { // Pokud je hodnota sousedícího prvku větší než hodnota aktuálně testovaného prvku if (pole[i] > pole[i + 1]) { // Ulož hodnotu aktuálního prvku do pomocné proměnné pom = pole[i]; // Ulož hodnotu sousedícího prvku do aktuálního prvku pole[i] = pole[i + 1]; // Ulož hodnotu z pomocné proměnné do sousedícího prvku pole[i + 1] = pom; // Došlo k prohození sousedních prvků b = true; } } } // Testování, zda došlo k prohození některých sousedních prvků while (b == true); }
Kód 1: Deklarace statické metody bez návratu s názvem SeraditPole