Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Zdeněk Andrle:11.12.2018 10:28

snažím se do tohoto dat formu bouble sort aby mi to vypsalo ještě na jeden řádek seřazena čísla od nejmenšího
takto to mam ted

Zkusil jsem: {
int min, max;
int[] nahodnepole = new int[6];
string n ="";
Random nahodnecislo1 = new Random();

Console.Write­Line("Vítejte v náhodném generátoru čísel");
System.Threadin­g.Thread.Sleep(2000);
Console.Write­Line("Následně vám vygeneruji 6 čísel");
System.Threadin­g.Thread.Sleep(2000);
Console.Write­Line("Stiskně­te enter pro pokračování");
Console.ReadLine();
opakovat:
for (int i = 0; i < 6; i++)
{
System.Threadin­g.Thread.Sleep(500);
nahodnepole[i] = nahodnecislo1­.Next(1, 49);
Console.Write(" "+ nahodnepole[i]);
}
Console.Write(" = ");
Console.Write(na­hodnepole[0] + nahodnepole[1] + nahodnepole[2] + nahodnepole[3] + nahodnepole[4] + nahodnepole[5]);
min = nahodnepole[0];
max = nahodnepole[0];
for (int i = 0; i <= nahodnepole.Length-1; i++)
{
if (nahodnepole[i] < min)
{
min = nahodnepole[i];
}
}
for (int i = 0; i <= nahodnepole.Length-1; i++)
{
if (nahodnepole[i] > max)
{
max = nahodnepole[i];
}
}
Console.Write­Line();
Console.Write­Line();
Console.Write­Line("Nejvyšší > > > " + max);
Console.Write­Line("Nejmenší číslo > > > " + min);
Console.Write­Line();
System.Threadin­g.Thread.Sleep(500);

Console.Write­Line("Chcete znovu vygenerovat čísla? A/N");

n = Console.ReadLine();

Chci docílit: snažím se do tohoto dat formu bouble sort aby mi to vypsalo ještě na jeden řádek seřazena čísla od nejmenšího

 
Odpovědět
11.12.2018 10:28
Avatar
Filip Zeman
Tvůrce
Avatar
Filip Zeman:11.12.2018 11:25

Zdravím. Pro příště prosím zkus využít tlačítko "Vložit zdrojový kód", ať se v tom dá lépe vyznat. :)

Na třídě Array je metoda sort. Pokud přímo nevyžaduješ setřídění Bubble sortem, který je poměrně hodně pomalý, doporučuji jednoduše Array.Sort(Tvo­jePole);. Následně pak můžeš vypsat cyklem foreach již setříděné pole. :)

 
Nahoru Odpovědět
11.12.2018 11:25
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:11.12.2018 14:59

Chtelo by to rici, co to dela, co to nedela. Treba zkopirovat sem vystup.
Tez by bylo fajn pouzivat tag code </>
A uplne nejlepe, kdybys to nechal prohnat pres neco takoveho, kdyz jsi liny formatovat sam https://codebeautify.org/csharpviewer.

Ja bych misto bubble sortu sel do insert sortu nebo lepe insert-to-middle sortu. Uz jen proto, ze pro insert sort je algoritmus jednodussi. V js napr

<script>
function insertionSort (items) {
  for (var i = 0; i < items.length; i++) {
    let value = items[i]
    for (var j = i - 1; j > -1 && items[j] > value; j--) {
      items[j + 1] = items[j]
    }
    items[j + 1] = value
  }
  return items
}
const list = [54, 26, 93, 17, 77, 31, 44, 55, 20]
console.log(insertionSort(list)) // [ 17, 20, 26, 31, 44, 54, 55, 77, 93 ]
</script>

Jestli spravne chapu ten kod (jakoze c# nepouzivam), tak nahore mas random cisla, pak mas zjisteni min, max. Pises o problemu s bubble sortem, ale zadny takovy algoritmus tam nemas.

Editováno 11.12.2018 15:00
 
Nahoru Odpovědět
11.12.2018 14:59
Avatar
Odpovídá na Zdeněk Andrle
Matyáš Černohous:12.12.2018 19:42
class Program
{
    static void Main(string[] args)
    {

        int min, max;
        int[] nahodnepole = new int[6];
        string n = "";
        Random nahodnecislo1 = new Random();

        Console.WriteLine("Vítejte v náhodném generátoru čísel");
        System.Threading.Thread.Sleep(2000);
        Console.WriteLine("Následně vám vygeneruji 6 čísel");
        System.Threading.Thread.Sleep(2000);
        Console.WriteLine("Stiskněte enter pro pokračování");
        Console.ReadLine();

        while (true)
        {

            for (int i = 0; i < 6; i++)
            {
                System.Threading.Thread.Sleep(500);
                nahodnepole[i] = nahodnecislo1.Next(1, 49);
                Console.Write(" " + nahodnepole[i]);
            }
            Console.Write(" = ");
            Console.Write(nahodnepole[0] + nahodnepole[1] + nahodnepole[2] + nahodnepole[3] + nahodnepole[4] + nahodnepole[5]);
            min = nahodnepole[0];
            max = nahodnepole[0];
            for (int i = 0; i <= nahodnepole.Length - 1; i++)
            {
                if (nahodnepole[i] < min)
                {
                    min = nahodnepole[i];
                }
            }
            for (int i = 0; i <= nahodnepole.Length - 1; i++)
            {
                if (nahodnepole[i] > max)
                {
                    max = nahodnepole[i];
                }
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("Nejvyšší > > > " + max);
            Console.WriteLine("Nejmenší číslo > > > " + min);
            Console.WriteLine();
            Console.WriteLine("Seřazená čísla bubble sortem");
            Console.WriteLine(string.Join(" ", BubbleSort(nahodnepole)));
            System.Threading.Thread.Sleep(500);

            Console.WriteLine("Chcete znovu vygenerovat čísla? 1[ano]/0[ne]");

            n = Console.ReadLine();
            //přeruší while
            if (n != "1")
                break;

        }
    }

    private static int[] BubbleSort(int[] arr)
    {
        for (int i = 0; i < arr.Length - 1; i++)
        {
            for (int j = 0; j < arr.Length - i - 1; j++)
            {
                if (arr[j + 1] < arr[j])
                {
                    int tmp = arr[j + 1];
                    arr[j + 1] = arr[j];
                    arr[j] = tmp;
                }
            }
        }
        return arr;
    }
}
 
Nahoru Odpovědět
12.12.2018 19:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.