Advertisement
Guest User

Untitled

a guest
Apr 10th, 2020
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.52 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApp75
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             int[] elems = new int[] { 82, 98, 73, 26, 44, 72, 48, 13, 86, 54,  3,  7, 11, 69, 74, 87, 28, 58, 34 };
  10.             KUPAC_RENDEZ(ref elems);
  11.  
  12.             foreach (var elem in elems)
  13.                 Console.WriteLine(elem);
  14.         }
  15.  
  16.         static void KUPAC_RENDEZ2(ref int[] k)
  17.         {
  18.             KUPACOT_EPIT(ref k);
  19.             int vege = k.Length - 1;
  20.             while(vege > 0)
  21.             {
  22.                 int temp = k[0];
  23.                 k[0] = k[vege];
  24.                 k[vege] = temp;
  25.                 vege -= 1;
  26.                 SZITAL(ref k, 0, vege);
  27.             }
  28.         }
  29.         static void SZITAL(ref int []k,int h,int v)
  30.         {
  31.             int x = k[h];
  32.             int gy = h + h;
  33.             while(gy <= v)
  34.             {
  35.                 if(gy < v && k[gy+1] > k[gy])
  36.                 {
  37.                     gy = gy + 1;
  38.                 }
  39.                 if(k[gy] > x)
  40.                 {
  41.                     k[h] = k[gy];
  42.                     h = gy;
  43.                     gy = h + h;
  44.                 }
  45.                 else
  46.                 {
  47.                     gy = v + 1;
  48.                 }
  49.             }
  50.             k[h] = x;
  51.         }
  52.         static void KUPACOT_EPIT(ref int [] k)
  53.         {
  54.             int i = (k.Length - 1) / 2;
  55.             while( i >= 0)
  56.             {
  57.                 SZITAL(ref k, i, k.Length - 1);
  58.                 i -= 2;
  59.             }
  60.         }
  61.  
  62.         static void KUPAC_RENDEZ(ref int [] k)
  63.         {
  64.             int i = (k.Length - 1) / 2;
  65.             int counter = 0;
  66.             while(i >= 0)
  67.             {
  68.                 Console.WriteLine("------");
  69.                 SULLYESZT_REK(ref k, i, k.Length - 1);
  70.                 counter++;
  71.                 i = i - 1;
  72.             }
  73.             Console.WriteLine("osszesen: " + counter);
  74.             Console.WriteLine("Ertek " + k[4]);
  75.             Console.WriteLine("Indexe (Pseudo) " + (Array.IndexOf(k, 29) + 1));
  76.             i = k.Length - 1;
  77.             while (i > 0)
  78.             {
  79.                 int temp = k[0];
  80.                 k[0] = k[i];
  81.                 k[i] = temp;
  82.                 i = i - 1;
  83.                 SULLYESZT_REK(ref k, 0, i);
  84.             }
  85.         }
  86.         static void SULLYESZT_REK(ref int []k,int honnan, int vege)
  87.         {
  88.             int gyermek = honnan + honnan;
  89.             if(gyermek < vege && k[gyermek + 1] > k[gyermek])
  90.             {
  91.                 gyermek += 1;
  92.             }
  93.             if (gyermek <= vege && k[gyermek] > k[honnan])
  94.             {
  95.                 int temp = k[gyermek];
  96.                 k[gyermek] = k[honnan];
  97.                 k[honnan] = temp;
  98.                 SULLYESZT_REK(ref k, gyermek, vege);
  99.             }
  100.         }
  101.         static void SULLYESZT(ref int [] k, int honnan, int vege)
  102.         {
  103.             int x = k[honnan];
  104.             int gyermek = honnan + honnan;
  105.             while (gyermek <= vege)
  106.             {
  107.                 if (gyermek < vege && k[gyermek + 1] > k[gyermek])
  108.                     gyermek = gyermek + 1;
  109.                 if (k[gyermek] > x)
  110.                 {
  111.                     k[honnan] = k[gyermek];
  112.                     int temp = honnan;
  113.                     honnan = gyermek;
  114.                     gyermek = temp + temp;
  115.                 }
  116.                 else
  117.                     gyermek = vege + 1;
  118.                    
  119.             }
  120.             k[honnan] = x;
  121.         }
  122.     }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement