Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Sortowanie {
- class Program {
- //JAKIEŚ ZMIENNE
- static int ile = 0, jeszcze;
- static bool jesioraz = false;
- static bool ladowanie = true;
- static string linia = "0";
- static bool manual = false;
- //FUNKCJE
- static void sort(int[] tablica) {
- int n = tablica.Length;
- do {
- for (int i = 0; i < n - 1; i++) {
- if (tablica[i] > tablica[i + 1]) {
- int tmp = tablica[i];
- tablica[i] = tablica[i + 1];
- tablica[i + 1] = tmp;
- }
- }
- n--;
- }
- while (n > 1);
- }
- static void QuickSort(int[] array, int lewo, int prawo) {
- var i = lewo;
- var j = prawo;
- var strona = array[(lewo + prawo) / 2];
- while (i < j) {
- while (array[i] < strona) i++;
- while (array[j] > strona) j--;
- if (i <= j) {
- var tmp = array[i];
- array[i++] = array[j];
- array[j--] = tmp;
- }
- }
- if (lewo < j) QuickSort(array, lewo, j);
- if (i < prawo) QuickSort(array, i, prawo);
- }
- static void Fajne_cos() {
- //System.Threading.Thread.Sleep(5000);
- Console.Write("[||| ]25%");
- System.Threading.Thread.Sleep(500);
- Console.Clear();
- Console.Write("[|||| ]35%");
- System.Threading.Thread.Sleep(500);
- Console.Clear();
- Console.Write("[|||||| ]60%");
- System.Threading.Thread.Sleep(500);
- Console.Clear();
- Console.Write("[|||||||| ]80%");
- System.Threading.Thread.Sleep(500);
- Console.Clear();
- Console.Write("[||||||||||]100%");
- ladowanie = false;
- }
- static int sprawdzenie(string liczba) {
- int ilosc_liczb;
- while (!Int32.TryParse(liczba, out ilosc_liczb) || liczba.ElementAt(0) == '-') {
- Console.Write("Podaj ilość liczb do posortowania: ");
- liczba = Console.ReadLine();
- }
- return ilosc_liczb;
- }
- static void Main(string[] args) {
- do {
- if (ladowanie == true) {
- Fajne_cos();
- ladowanie = false;
- }
- int opcja = 0;
- do {
- Console.Clear();
- Console.Write("Jaką metode sortowania chcesz wybrać?");
- if (manual == false) {
- Console.Write("(Manual Wyłączony)\n");
- } else {
- Console.Write("(Manual Włączony)\n");
- }
- Console.Write("1. Sortowanie bąbelkowe\n2. Sortowanie szybkie (quicksort)\n3. Sortowanie przez wstawianie \n4. Opcje\n Wybór: ");
- opcja = Convert.ToInt32(Console.ReadLine());
- } while (opcja <= 0 || opcja >= 5);
- switch (opcja) {
- case 1:
- jesioraz = false;
- Console.Clear();
- Console.Write("Ile liczb chcesz posortować?");
- ile = Convert.ToInt32(Console.ReadLine());
- int[] tablica = new int[ile];
- if (ile == 0) {
- jesioraz = true;
- break;
- }
- if (manual == true) {
- tablica = new int[ile];
- Random rnd = new Random();
- Console.Write("\nPrzed: ");
- for (int i = 0; i < ile; i++) {
- tablica[i] = rnd.Next(0, 100);
- Console.Write(tablica[i] + " ");
- }
- }
- if (manual == false) {
- Console.Write("Podaj liczby do tablicy: \n");
- for (int i = 0; i < ile; i++) {
- Console.Write((i + 1) + " ");
- tablica[i] = Convert.ToInt32(Console.ReadLine());
- }
- Console.Write("\nPrzed: ");
- for (int l = 0; l < ile; l++) {
- Console.Write(tablica[l] + " ");
- }
- }
- sort(tablica);
- Console.Write("\nPo: ");
- for (int j = 0; j < ile; j++) {
- Console.Write(tablica[j] + " ");
- }
- Console.Write("\n\n\nPowrót do menu?\n1. Tak\n2. Nie\n Opcja: ");
- jeszcze = Convert.ToInt32(Console.ReadLine());
- if (jeszcze == 1) {
- jesioraz = true;
- break;
- }
- break;
- case 2:
- jesioraz = false;
- Console.Clear();
- Console.Write("Ile liczb chcesz posortować?");
- ile = Convert.ToInt32(Console.ReadLine());
- if (ile == 0) {
- jesioraz = true;
- break;
- }
- var rnd2 = new Random();
- int[] tablica2 = new int[ile];
- for (int i = 0; i < tablica2.Length; i++) {
- tablica2[i] = rnd2.Next(0, 100);
- }
- Console.WriteLine("\nPrzed: ");
- Console.WriteLine(string.Join(" ", tablica2));
- QuickSort(tablica2, 0, tablica2.Length - 1);
- Console.WriteLine("Po: ");
- Console.WriteLine(string.Join(" ", tablica2));
- Console.Write("\n\n\nPowrót do menu?\n1. Tak\n2. Nie\n Opcja: ");
- jeszcze = Convert.ToInt32(Console.ReadLine());
- if (jeszcze == 1) {
- jesioraz = true;
- break;
- }
- break;
- case 3:
- jesioraz = false;
- Console.Clear();
- Console.Write("Ile liczb chcesz posortować?");
- ile = Convert.ToInt32(Console.ReadLine());
- if (ile == 0) {
- jesioraz = true;
- break;
- }
- int ilosc_liczb, element, bufor;
- string liczba = "";
- Random randomizer = new Random();
- ilosc_liczb = sprawdzenie(liczba);
- int[] do_posortowania = new int[ilosc_liczb];
- int[] posortowane = new int[ilosc_liczb];
- Console.WriteLine("");
- for (int i = 0; i < ilosc_liczb; i++) {
- element = randomizer.Next(101);
- do_posortowania[i] = element;
- Console.Write(do_posortowania[i] + " ");
- }
- Console.WriteLine("");
- posortowane[0] = do_posortowania[0];
- for (int i = 1; i < ilosc_liczb; i++) {
- for (int j = i; j > 0; j--) {
- if (posortowane[j - 1] > do_posortowania[i]) {
- bufor = posortowane[j - 1];
- posortowane[j - 1] = do_posortowania[i];
- posortowane[j] = bufor;
- } else {
- posortowane[j] = do_posortowania[i];
- break;
- }
- }
- }
- Console.WriteLine("Posortowane liczby:");
- for (int i = 0; i < ilosc_liczb; i++) {
- Console.Write(posortowane[i] + " ");
- }
- Console.Read();
- break;
- case 4:
- jesioraz = true;
- int zmiana = 0;
- do {
- try {
- using(StreamReader streamR = new StreamReader("dane.txt")) {
- linia = streamR.ReadLine();
- streamR.Close();
- }
- } catch (Exception e) {
- Console.WriteLine("Nie mozna otworzyc pliku");
- Console.WriteLine(e.Message);
- }
- Console.Clear();
- zmiana = 0;
- Console.Write("===============\n");
- Console.Write(" Opcje \n");
- Console.Write("===============\n");
- Console.Write("1. Automatyczne uzupełnianie tablicy(Randomowe Liczby) = ");
- if (manual == false) {
- Console.Write("Nie aktywne!");
- }
- if (manual == true) {
- Console.Write("Aktywne!");
- }
- Console.Write("\n\nCzy chcesz zmienić opcje numer 1?\n 1. Tak\n 2. Nie\nOpcja: ");
- zmiana = Convert.ToInt16(Console.ReadLine());
- if (zmiana == 1) {
- if (linia == "0")
- using(StreamWriter StreamW = new StreamWriter(("dane.txt"), false)) {
- StreamW.WriteLine("1");
- manual = true;
- StreamW.Close();
- }
- if (linia == "1") {
- using(StreamWriter StreamW = new StreamWriter(("dane.txt"), false)) {
- StreamW.WriteLine("0");
- manual = false;
- StreamW.Close();
- }
- }
- } else {
- break;
- }
- }
- while (zmiana >= 0 || zmiana <= 3);
- break;
- }
- opcja = 0;
- } while (jesioraz == true);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement