Selection sort – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Selection sort – C / C++ – Fórum – Programujte.comSelection sort – C / C++ – Fórum – Programujte.com

 

Pavel
~ Anonymní uživatel
383 příspěvků
12. 10. 2016   #1
-
0
-

Zdar. Hej pokud mám kod na selection sort 

 public static void selectionSort(int[] array) {
     for (int i = 0; i < array.length - 1; i++) {
         int maxIndex = i;
         for (int j = i + 1; j < array.length; j++) {
             if (array[j] > array[maxIndex]) maxIndex = j;
         }
         int tmp = array[i];
         array[i] = array[maxIndex];
         array[maxIndex] = tmp;
     } 
 }

co mám doplnit do toho pole maxIndex?

díky

Nahlásit jako SPAM
IP: 89.235.31.–
Pavel
~ Anonymní uživatel
383 příspěvků
12. 10. 2016   #2
-
0
-

Omlouvám se. Myslel jsem tenhle zdroják

void selectionSort(int array[], int size) {
     for (int i = 0; i < size - 1; i++) {
         int maxIndex = i;
         for (int j = i + 1; j < size; j++) {
             if (array[j] > array[maxIndex]) maxIndex = j;
         }
         int tmp = array[i];
         array[i] = array[maxIndex];
         array[maxIndex] = tmp;
     } 
 }
Nahlásit jako SPAM
IP: 89.235.31.–
13. 10. 2016   #3
-
0
-

První kód mi připadá jako C#.

maxIndex je proměnná int, hodnotu do ní si vkládá sám program vždy na začátku "oběhu" prvního cyklu a při splněné podmínce se modifikuje uvnitř druhého cyklu. Pokud dotaz směřoval na pole array, obsahuje prvky, které se budou řadit. U C verze je ještě parametr size, protože jinak by nebyla známa velikost pole, array je jen ukazatel. V C++ verzi by šlo na místo pole použít kontejner std::vector, ten zná svoji velikost. V C# pole znají svou velikost.

Použití array jako názvu proměnné mi nepřipadá vhodné, mám za to, že je to klíčové slovo.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
peter
~ Anonymní uživatel
4016 příspěvků
13. 10. 2016   #4
-
0
-

int maxIndex = i;
Se tam urcuje podle hodnoty i.
 

Nerad bych ti do toho kecal, ale insert sort je pomaly. A nebo mam spatne napsany algoritmus :)
http://mlich.zam.slu.cz/…sorting2.htm
1000 prvku je v pohode, ale jak tam das 10000, tak ten cas je sileny.
(prepni na fast1, v algoritmus pridej ty dva insertsorty, zadej 10000 prvku, start; ve FF mi tam naskoci 100 ms casy, kdezto ListMerge ma 5 ms; jo, a jeste je mozna dobre vyradit quicky, tam je nejaka chyba, ze se to obcas zacykluje)

Nahlásit jako SPAM
IP: 2001:718:2601:26c:38cd:95...–
peter
~ Anonymní uživatel
4016 příspěvků
13. 10. 2016   #5
-
0
-

ups, teda select sort . Mno, ony jsou pomale oba :) Ale zajimavej je Timsort, kterej ma naproste minimum compare operaci. Coz muze byt v pripade porovnavani slov o 30 znacich vyhoda. A tez je ma detekci serazeni pole ASC / DESC. Ale u ListMerge se detekce serazeni da taky udelat a navic si poradi jeste s mirne rozhazenym polem jako by bylo serazene.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:38cd:95...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 75 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý