Advertisement
Guest User

rightwingdeathsquads

a guest
Oct 17th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.59 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace ConsoleApplication14
  9. {
  10.    
  11.  
  12.  
  13.  
  14.  
  15.     class Program
  16.     {
  17.        
  18.  
  19.  
  20.         static void Main(string[] args)
  21.         {
  22.             List<int> lista = new List<int>();
  23.             int size;
  24.             using (StreamReader reader = new StreamReader("in.txt"))
  25.             {
  26.                 string line;
  27.                 line = reader.ReadLine();
  28.  
  29.                 size = Int32.Parse(line);
  30.                 for (int i = 0; i < size; i++)
  31.                 {
  32.                     line = reader.ReadLine();
  33.                     lista.Add(Int32.Parse(line));
  34.                 }
  35.             }
  36.  
  37.             List<int> lista2 = new List<int>();
  38.             using (StreamReader reader = new StreamReader("in.txt"))
  39.             {
  40.                 string line;
  41.                 line = reader.ReadLine();
  42.                 for (int i = 0; i < size; i++)
  43.                 {
  44.                     line = reader.ReadLine();
  45.                     lista2.Add(Int32.Parse(line));
  46.                 }
  47.             }
  48.             List<int> lista3 = new List<int>();
  49.             using (StreamReader reader = new StreamReader("in.txt"))
  50.             {
  51.                 string line;
  52.                 line = reader.ReadLine();
  53.                 for (int i = 0; i < size; i++)
  54.                 {
  55.                     line = reader.ReadLine();
  56.                     lista3.Add(Int32.Parse(line));
  57.                 }
  58.             }
  59.             lista.Sort();
  60.             lista3.Sort();
  61.             Console.WriteLine("Lista przed: ");
  62.             foreach (int i in lista) Console.WriteLine(i);
  63.             Console.WriteLine("Liczba elementów: {0} ", lista.Count);
  64.  
  65.  
  66.  
  67.             int pom;
  68.             int pom2;
  69.             int operacje = 0;
  70.  
  71.             for (int i = 0; i < size; i++)
  72.             {
  73.                 pom = lista[i];
  74.                 pom2 = lista[i];
  75.                 for (int j = 0; j < size; j++)
  76.                 {
  77.                     if ((lista[j] == (pom) || lista[j] == pom2) && i != j) { lista[i] += lista[j]; pom2 = lista[i]; lista[j] = 0; operacje++; }
  78.                     operacje++;
  79.                 }
  80.             }
  81.             lista.RemoveAll(i => i == 0);
  82.  
  83.             Console.WriteLine("\nLista po: \n");
  84.  
  85.             foreach (int i in lista) Console.WriteLine(i);
  86.             Console.WriteLine("Liczba elementów: {0} ", lista.Count);
  87.             Console.WriteLine("Liczba operacji elementarnych: {0} ", operacje);
  88.  
  89.  
  90.             Console.WriteLine("\nSposób drugi z sortowaniem: \n");
  91.  
  92.             Console.WriteLine("Lista przed: ");
  93.             foreach (int i in lista2) Console.WriteLine(i);
  94.             Console.WriteLine("Liczba elementów: {0} ", lista2.Count);
  95.             int operacjesort = 0;
  96.             int left = 0; ;
  97.             int right=lista2.Count-1;
  98.             var m = left;
  99.             var n = right;
  100.             var pivot = lista2[(left + right) / 2];
  101.             while (m < n)
  102.             {
  103.                 operacjesort++;
  104.                 while (lista2[m] < pivot) { m++; operacjesort++; }
  105.                 operacjesort++;
  106.                 while (lista2[n] > pivot) { n--; operacjesort++; }
  107.                 if (m <= n)
  108.                 {
  109.                     var tmp = lista2[m];
  110.                     lista2[m++] = lista2[n];
  111.                     lista2[n--] = tmp;
  112.                    
  113.                 }
  114.             }
  115.             if (left < n) QuickSort(lista2, left, n, operacjesort);
  116.             if (m < right) QuickSort(lista2, m, right, operacjesort);
  117.  
  118.             int operacje2 = 0;
  119.             int k = 0;
  120.             size = lista2.Count;
  121.             while (k < size)
  122.             {
  123.                 pom = lista2[k];
  124.                 pom2 = lista2[k];
  125.                 for (int j = 0; j < size; j++)
  126.                 {
  127.                     if ((lista2[j] == (pom) || lista2[j] == pom2) && k != j) { lista2[k] += lista2[j]; pom2 = lista2[k]; lista2[j] = 0; operacje2++; }
  128.                     operacje2++;
  129.                 }
  130.  
  131.                 k++;
  132.             }
  133.             operacje2 += operacjesort;
  134.             lista2.RemoveAll(i => i == 0);
  135.             Console.WriteLine("\nLista po: \n");
  136.  
  137.             foreach (int i in lista2) Console.WriteLine(i);
  138.             Console.WriteLine("Liczba elementów: {0} ", lista2.Count);
  139.             Console.WriteLine("Liczba operacji elementarnych: {0} ", operacje2);
  140.             Console.ReadKey();
  141.             using (StreamWriter writer = new StreamWriter("out.txt"))
  142.             {
  143.                 writer.WriteLine("Lista przed: ");
  144.                 foreach (int i in lista3) writer.WriteLine(i);
  145.                 writer.WriteLine("Liczba elementów: {0} ", lista3.Count);
  146.                 writer.WriteLine("\nLista po: \n");
  147.  
  148.                 foreach (int i in lista) writer.WriteLine(i);
  149.                 writer.WriteLine("Liczba elementów: {0} ", lista.Count);
  150.                 writer.WriteLine("Liczba operacji elementarnych: {0} ", operacje);
  151.  
  152.                 writer.WriteLine("\nSposób drugi: \n");
  153.  
  154.                 writer.WriteLine("Lista przed: ");
  155.                 foreach (int i in lista3) writer.WriteLine(i);
  156.                 writer.WriteLine("Liczba elementów: {0} ", lista3.Count);
  157.                 writer.WriteLine("\nLista po: \n");
  158.  
  159.                 foreach (int i in lista2) writer.WriteLine(i);
  160.                 writer.WriteLine("Liczba elementów: {0} ", lista2.Count);
  161.                 writer.WriteLine("Liczba operacji elementarnych: {0} ", operacje2);
  162.  
  163.  
  164.  
  165.             }
  166.  
  167.  
  168.         }
  169.     }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement