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

QuickSort padá – C / C++ – Fórum – Programujte.comQuickSort padá – C / C++ – Fórum – Programujte.com

 

unik
~ Anonymní uživatel
2 příspěvky
18. 12. 2013   #1
-
0
-

Zdravim,

mam problem ze quickSort(kod som stiahol z netu) pada pri zoradovani vacsich poli(priblizne pri 4500 cislach).

Zaujimave je, ze pada rovnakym sposobom uz pri druhom, inak implementovanom quickSorte.

VS mi ukazuje, ze error je pri zvyraznenej zatvorke.

Dakujem.

Tu je kod :

void quickSort(int numbers[], int array_size)
{
  q_sort(numbers, 0, array_size - 1);
}
 
void q_sort(int numbers[], int left, int right)
{
  int pivot, l_hold, r_hold;
 
  l_hold = left;
  r_hold = right;
  pivot = numbers[left];
  while (left < right)
  {
    while ((numbers[right] >= pivot) && (left < right))
      right--;
    if (left != right)
    {
      numbers[left] = numbers[right];
      left++;
    }
    while ((numbers[left] <= pivot) && (left < right))
      left++;
    if (left != right)
    {
      numbers[right] = numbers[left];
      right--;
    }
  }
  numbers[left] = pivot;
  pivot = left;
  left = l_hold;
  right = r_hold;
  if (left < pivot)
    q_sort(numbers, left, pivot-1);
  if (right > pivot)
    q_sort(numbers, pivot+1, right);
}

Nahlásit jako SPAM
IP: 62.152.234.–
Radek Chalupa
~ Redaktor
+1
Super člen
18. 12. 2013   #2
-
0
-

#1 unik
Takový odhad po letmém pohledu: vzhledem k rekurzi při určitém počtu překročíš velikost stacku (mám dojem že defaultně je 1 MB, v MS VC++)

Radek Chalupa 
- vývoj software na zakázku 
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC) 
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 89.177.51.–
KIIV
~ Moderátor
+43
God of flame
18. 12. 2013   #3
-
0
-

mozna ukaz jak to volas a s cim.. treba mas chybu tam

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
vitamin+8
Grafoman
18. 12. 2013   #4
-
0
-

#2 Radek Chalupa
Ak nema vypnute optimalizcie a nepouziva archaicky kompilator tak by sa mala pouzit tail call optimalizacia.

Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
unik
~ Anonymní uživatel
2 příspěvky
19. 12. 2013   #5
-
0
-

Dakujem za odpovede, ale vedeli by ste mi povedat aj ako to vyriesit? resp. ako zvysit ten 1MB tak aby mi spracoval pole o velkosti 1 000 000 integerov?

Volanie:

  random_numbers_temp1 = (int*)malloc(n*sizeof(int));
  random_numbers_temp1 = random_numbers;

  quickSort(random_numbers_temp1,n);

Nahlásit jako SPAM
IP: 62.152.234.–
KIIV
~ Moderátor
+43
God of flame
19. 12. 2013   #6
-
0
-

#5 unik
 random_numbers_temp1 = random_numbers;

tim znicis pointer, alokovany na predchozim radku... pokud chces to pole naplnit, musis cyklem

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 119 hostů

Podobná vlákna

Quicksort složitost — založil TomBar

Quicksort v assembleru — založil myšák

Podkopávání algoritmu Quicksort — založil Petr Zakopal

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ý