Sortowanie trzech tablic

0

Moglby mi ktos podpowiedziec jak mam zrobic sortowanie dla kazdej tablic? podzielilem jedna tablice na 3 czesci, kazda robi co innego tylko nie mam pojecia jak to teraz posortowac...
Program:

 class Program
    {
        static void Main(string[] args)
        {
            int wybor;
            int o;
            int m;

            do
            {
                 Console.Clear();
                 Console.WriteLine();
                 Console.WriteLine("wybierz co chcesz zrobic!");
                 Console.WriteLine("1.Losowanie liczb...");
                 Console.WriteLine("2.Rekurencja");
                 Console.WriteLine("3.Koniec");
                 wybor = int.Parse(Console.ReadLine());


                 switch (wybor)
                 {
                     case 1:
                         {
                             Random rand = new Random();
                             int[] wylosowane = new int[100];


                             int wylosowana = 0;
                             bool powtorzona = true;
                             int liczbaWylosowanych = 0;
                             while (liczbaWylosowanych < 100)
                             {
                                 do
                                 {

                                     powtorzona = false;
                                     wylosowana = rand.Next(20, 900);
                                     for (int i = 1; i < liczbaWylosowanych; i++)
                                     {
                                         if (wylosowana % 2 == 0)
                                         {
                                             powtorzona = true;
                                             break;
                                         }
                                     }
                                 }

                                 while (powtorzona == true);
                                 wylosowane[liczbaWylosowanych++] = wylosowana;
                             }
                             for (int i = 1; i < liczbaWylosowanych; i++)
                             {
                                 Console.Write(wylosowane[i] + " ");
                             }
                             Console.Read();
                             Console.Read();

                             {
                                 o = wylosowane[0];
                                 m = wylosowane[0];

                                 for (int i = 1; i < liczbaWylosowanych; i++)
                                 {
                                     if (wylosowane[i] > o)
                                         o = wylosowane[i];
                                 }
                                 for (int i = 1; i < liczbaWylosowanych; i++)
                                 {
                                     if (wylosowane[i] < m)
                                         m = wylosowane[i];
                                 }

                                 Console.WriteLine();
                                 Console.WriteLine("Wartość minimalna " + m);
                                 Console.WriteLine("Wartość maksymalna " + o);
                             }
                             Console.Read();
                             Console.Read();

                             {

                                 int i = 0;
                                 o = wylosowane[0];
                                 m = wylosowane[0];

                                 Console.WriteLine("TABLICA A");
                                 for (i = 1; i < liczbaWylosowanych; i++)
                                 {
                                     if ((wylosowane[i] < ((m + o) / 3)) & (wylosowane[i] > 0))
                                     {
                                         Console.Write(wylosowane[i] + " ");
                                     }
                                 }
                             }
                             Console.ReadLine();
                             {
                                 int i = 0;
                                 o = wylosowane[0];
                                 m = wylosowane[0];

                                 Console.WriteLine("TABLICA B");
                                 for (i = 0; i < liczbaWylosowanych; i++)
                                 {
                                     if ((wylosowane[i] > ((o + m) / 3) & (wylosowane[i] < 2 * (o + m) / 3)))
                                     {
                                         Console.Write(wylosowane[i] + " ");
                                     }
                                 }
                             }
                             Console.ReadLine();

                             {
                                 int i = 0;
                                 o = wylosowane[0];
                                 m = wylosowane[0];

                                 Console.WriteLine("TABLICA C");
                                 for (i = 0; i < liczbaWylosowanych; i++)
                                 {
                                     if ((wylosowane[i] > 2 * ((o + m) / 3)))
                                     {
                                         Console.Write(wylosowane[i] + " ");
                                     }
                                 }
                             }
                             Console.Read();
                             Console.Read();

                         }
                         Console.Read();
                         Console.Read();
                         break;
			 }
         
            }
             while (wybor != 3);
        }
           
    }
}
0

Co posortować cała tablicę, czy kazda z osobna czy jeszcze inaczej?

zwykłe sortowanie tablicy jednowymiarowej (zapewne algorytmem QuickSort) Można uzyskać:
Array.Sort(tablica);

0

kazda z osobna... chcialem quicksortem, przez wstawianie i babelkowo...

0

hm, a nie mozesz sobie na poczatku stworzyc trzech tablic, wylosowac im elementy i kazda posortować innym algorytmem?

Wewentualnie, idąc Twoją metodą, musisz mieć elementy poszczególnych Tablic A,B,C w odrębnych tablicach.

A Algorytmy sortowań ktore wymieniłeś są proste i do znalezienia w necie :)

0

dzieki stary duzo mi pomogles... chyba nie rozumiesz o co prosilem. w ogole to zobacz co jest w kodzie napisane... mowie ze chce zrobic sortowanie dla kazdej tablic a,b i c bo kazda tablica co innego robi widzisz? czy nie? a algorytmy sortowan mam tylko nie wiem jak mam je wstawic.

0

Pretensje masz do mnie?

Widze że Ty tutaj masz tylko JEDNĄ tablicę a nie 3, wypisujesz tylko inne elementy do konsoli.
Idąc dalej, na czym polega Twoj problem, skoro posiadasz algorytmy sortowań czyli np metody do ktorych przekazuje się referencję na obiekt (tablicę)? wystarczy że zapiszesz elemety (ktore wypisujesz do konsoli pod Nazwą Tablica A,B,C) do tablicy jednowymiarowej. Nastepnie ta tablice wrzucasz do metody sortujacej, no i ostatnim etapem bedzie wypisanie posortowanej tablicy.

0

Nie mam do Ciebie pretensji.
Chcialem sie tylko dowiedziec jak mam posortowac liczby ktore mi sie wyswietlaja w TABLICY A,B,C .
To co do mnie napisales to nie bardzo zrozumialem mozesz troche prosciej? bo nie mam zielonego pojecia jak mam to zrobic zeby dzialalo a na jutro musze cos z tego umiec:/

0
class Program
    {
        static void Main(string[] args)
        {
            int wybor;
            int o;
            int m;

            do
            {
                 Console.Clear();
                 Console.WriteLine();
                 Console.WriteLine("wybierz co chcesz zrobic!");
                 Console.WriteLine("1.Losowanie liczb...");
                 Console.WriteLine("2.Rekurencja");
                 Console.WriteLine("3.Koniec");
                 wybor = int.Parse(Console.ReadLine());


                 switch (wybor)
                 {
                     case 1:
                         {
                             Random rand = new Random();
                             int[] wylosowane = new int[100];


                             int wylosowana = 0;
                             bool powtorzona = true;
                             int liczbaWylosowanych = 0;
                             while (liczbaWylosowanych < 100)
                             {
                                 do
                                 {

                                     powtorzona = false;
                                     wylosowana = rand.Next(20, 900);
                                     for (int i = 1; i < liczbaWylosowanych; i++)
                                     {
                                         if (wylosowana % 2 == 0)
                                         {
                                             powtorzona = true;
                                             break;
                                         }
                                     }
                                 }

                                 while (powtorzona == true);
                                 wylosowane[liczbaWylosowanych++] = wylosowana;
                             }
                             for (int i = 1; i < liczbaWylosowanych; i++)
                             {
                                 Console.Write(wylosowane[i] + " ");
                             }
                             Console.Read();
                             Console.Read();

                             {
                                 o = wylosowane[0];
                                 m = wylosowane[0];

                                 for (int i = 1; i < liczbaWylosowanych; i++)
                                 {
                                     if (wylosowane[i] > o)
                                         o = wylosowane[i];
                                 }
                                 for (int i = 1; i < liczbaWylosowanych; i++)
                                 {
                                     if (wylosowane[i] < m)
                                         m = wylosowane[i];
                                 }

                                 Console.WriteLine();
                                 Console.WriteLine("Wartość minimalna " + m);
                                 Console.WriteLine("Wartość maksymalna " + o);
                             }
                             Console.Read();
                             Console.Read();

                             {

                                 int i = 0;
                                 o = wylosowane[0];
                                 m = wylosowane[0];

                                 Console.WriteLine("TABLICA A");

                                 string array_in_string = "";

                                 for (i = 1; i < liczbaWylosowanych; i++)
                                 {
                                     if ((wylosowane[i] < ((m + o) / 3)) & (wylosowane[i] > 0))
                                     {
                                         array_in_string += wylosowane[i] + " ";
                                     }
                                 }
                                 int[] array_A = String_To_IntArray(array_in_string);
                                 Bubble_Sort_Method(array_A);
                                 Console_Write_IntArray(array_A);
                             }
                             Console.ReadLine();
                             {
                                 int i = 0;
                                 o = wylosowane[0];
                                 m = wylosowane[0];

                                 Console.WriteLine("TABLICA B");

                                 string array_in_string = "";

                                 for (i = 0; i < liczbaWylosowanych; i++)
                                 {
                                     if ((wylosowane[i] > ((o + m) / 3) & (wylosowane[i] < 2 * (o + m) / 3)))
                                     {
                                         array_in_string += wylosowane[i] + " ";
                                     }
                                 }
                                 int[] array_B = String_To_IntArray(array_in_string);
                                 Bubble_Sort_Method(array_B);
                                 Console_Write_IntArray(array_B);
                             }
                             Console.ReadLine();

                             {
                                 int i = 0;
                                 o = wylosowane[0];
                                 m = wylosowane[0];

                                 Console.WriteLine("TABLICA C");

                                 string array_in_string = "";

                                 for (i = 0; i < liczbaWylosowanych; i++)
                                 {
                                     if ((wylosowane[i] > 2 * ((o + m) / 3)))
                                     {
                                         array_in_string += wylosowane[i] + " ";
                                     }
                                 }
                                 int[] array_C = String_To_IntArray(array_in_string);
                                 Bubble_Sort_Method(array_C);
                                 Console_Write_IntArray(array_C);
                             }
                             Console.Read();
                             Console.Read();

                         }
                         Console.Read();
                         Console.Read();
                         break;
                         }
         
            }
             while (wybor != 3);
        }

    static int[] String_To_IntArray(string array_in_string_separated_by_space)
    {
        string[] string_array = array_in_string_separated_by_space.Split(new char[] {' '},StringSplitOptions.RemoveEmptyEntries);
        int[] result_array = new int[string_array.Length];
        for (int i = 0; i < string_array.Length; i++)
        {
            result_array[i] = int.Parse(string_array[i]);
        }

        return result_array;
    }
    static void Console_Write_IntArray(int[] array)
    {
        for (int i = 0; i < array.Length; i++)
        {
            Console.Write(array[i] + " ");
        }
    }

    static void Bubble_Sort_Method(int[] array_to_sort)
    {
        bool swapped = false;
        int[] temporary_array = new int[array_to_sort.Length];
        do
        {
            swapped = false;
            for (int i = 0; i < array_to_sort.Length-1; i++)
            {
                if (array_to_sort[i] > array_to_sort[i + 1])
                {
                    int help_variable = array_to_sort[i];
                    array_to_sort[i] = array_to_sort[i + 1];
                    array_to_sort[i+1]=help_variable;
                    swapped=true;
                }
            }
        } while (swapped == true);
    }

}

o to chodziło?
quickSort-a i Selection Sort-a sobie dopiszesz :P

0

Dziękować ;) bardzo mi pomogłeś kolego!

1 użytkowników online, w tym zalogowanych: 0, gości: 1