vojta249

Maturita_19 - insert

May 5th, 2022 (edited)
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.78 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Program
  4. {
  5.     class Program
  6.     {
  7.         static void insertionSort(int[] pole)
  8.         {
  9.             //prvni prvek povazujeme za setrizeny (pole[0]), zaciname od pole[1]
  10.             for (int i = 1; i < pole.Length; i++)
  11.             {
  12.                 //int x = docasna promenna, ukladame hodnotu pole[i]
  13.                 int x = pole[i];
  14.                 int j = i - 1;
  15.                 /*prvni projeti for cyklu j = 0, pokud plati pole[j] > x,
  16.                  * nasledujici cyklus se provede jednou, dalsi projeti cyklu j = 1,
  17.                  * nasledujici cyklus dvakrat...*/
  18.                 while (j >= 0 && pole[j] > x)
  19.                 {
  20.                     //na index j + 1 cislo s indexem j
  21.                     pole[j + 1] = pole[j];
  22.                     j--;
  23.                 }
  24.                 //na index j + 1 cislo x, tj. cislo pole[i]
  25.                 pole[j + 1] = x;
  26.             }
  27.         }
  28.         //vypisovani pole
  29.         static void vypisPole(int[] pole)
  30.         {
  31.             for (int i = 0; i < pole.Length; i++)
  32.                 Console.Write(pole[i] + " ");
  33.         }
  34.         static void Main(string[] args)
  35.         {
  36.             //pole nahodnych cisel
  37.             int[] pole = new int[100];
  38.             Random random = new Random();
  39.             for (int i = 0; i < pole.Length; i++)
  40.                 pole[i] = random.Next(0, 100);
  41.             Console.WriteLine("Původní pole:");
  42.             vypisPole(pole);
  43.             Console.WriteLine("\n");
  44.             insertionSort(pole);
  45.             Console.WriteLine("\nSetřízené pole");
  46.             vypisPole(pole);
  47.         }
  48.     }
  49. }
  50. /* jede zleva doprava a postupne doleva posouva cisla podle velikosti
  51.  * pokud mame mensi vlevo jde dal a zkousi dalsi dokud neni na svojem miste*/
Add Comment
Please, Sign In to add comment