Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 14:07

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C] Quicksort mit Int funktioniert nicht bei großen Zahlen

Discussion on [C] Quicksort mit Int funktioniert nicht bei großen Zahlen within the C/C++ forum part of the Coders Den category.

Closed Thread
 
Old   #1
 
Belur's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 3,441
Received Thanks: 1,473
[C] Quicksort mit Int funktioniert nicht bei großen Zahlen

Hey,

ich musste ein bestimmtes Array erzeugen, dieses mit Quicksort sortieren, und dann sortiert ausgeben.

Wir hatten einen vorgebenen Quicksort für Chars. Den sollten wir nur eben für int anpassen.
Habe also die paar "char" durch "int" ersetzt.
Habe mir dann erst ein Testarray erstellt mit kleinen Zahlen:
Bsp:
int daten[]={5,4,3,2,1};
Ausgabe:
1 2 3 4 5

Dafür klappt das ganze auch gut. Die zahlen werden sortiert ausgegeben.
Sobald ich aber größere Zahlen nehme, werden die Zahlen erstmal nicht mehr richtig sortiert, und es kommen auf einmal vollig fremde Zahlen in die Ausgabe.
Bsp:
int daten[]={546, 123, 74, 297, 846};
Ausgabe:
74 34 123 41 846

Wie man sieht, sind die Zahlen weder sortiert, noch ist die "34" und die "41" zB Element des Arrays gewesen.

Dieser Fehler tritt bei Zahlen ab 128 auf. Obwohl man in einem normalem Int ja eig. Zahlen bis 65.535 speichern sollen könnte.

Weiß echt nicht, was das Problem ist.

Code sieht so aus:

PHP Code:
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define yl 2
#define xl 5

int zahlen[xl][yl]={{1564}, {2123}, {374}, {4297}, {5846}};
int daten[]={54612374297846};

void qs(int *datenint linksint rechts) {
  
int i,j;
  
char x,y;

  
i=linksj=rechts;
  
daten[(links+rechts)/2]; // mittleres Element

  
do {
    while (
daten[i]<&& i<rechtsi++; // such Element für "große Klasse"
    
while (x<daten[j] && j>linksj--;     // such Element für "kleine Klasse"

    
if (i<=j) {                                     // vertausche Elemente
      
daten[i];
      
daten[i] = daten[j];
      
daten[j] = y;
      
i++; j--;
    }
  } while (
i<=j);

  if (
links<jqs(datenlinks,j);                   // Aufruf für "kleine Klasse"
  
if (i<rechtsqs(datenirechts);          // Aufruf für "große Klasse"
}

/**
 * Diese Funktion bereitet den Aufruf der Rekursiven "qs"
 * Funktion vor.
 *
 * Der Parameter "daten" enthält die Daten, die sortiert
 * werden sollen.
 */
void quick_sort(int *daten) { // Quicksort vorbereiten
  
int zaehler;

  
zaehler 5;
  
qs(daten0zaehler-1);
}



int main(int argcchar **argv) {
    
int i;




      
// Sortieren dar Daten
      
quick_sort(daten);


      for(
i=0i<5i++){
      
printf("%d\t"daten[i]);

      }
      return 
0;


Hoffe mir kann da vllt jmd helfen.

Grüße
Belur is offline  
Old 12/07/2013, 16:57   #2
 
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
Quote:
Originally Posted by Belur View Post
PHP Code:
  char x,y
Da.
Tasiro is offline  
Thanks
1 User
Old 12/07/2013, 17:01   #3
 
Belur's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 3,441
Received Thanks: 1,473
Zu blöd -.-

Hätte ich selbst sehen können.

Danke
Belur is offline  
Old 12/07/2013, 17:16   #4


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
#closed
MrSm!th is offline  
Closed Thread


Similar Threads Similar Threads
Lord Wahl funktioniert nicht mehr / Behemoth Dungeon Eingang funktioniert nicht mehr
07/11/2012 - Flyff Private Server - 3 Replies
Wie es im Titel steht haben wir momentan 2 Probleme. Aus ungeklärten Ursachen geht mit Mal die Lord Wahl nicht mehr. Vor 2 Wochen funktionierte die Lord Wahl noch ohne Probleme, dieses Wochenende konnte man sich normal aufstellen, die Aufstellung wurde aber nicht geschlossen. Man konnte sich auch Samstag und Sonntag noch aufstellen. Außerdem wurde das Voting nicht gestartet, es wurde nicht möglich, jemanden der aufgestellten zu wählen. Wie gesagt, vor 2 Wochen und auch vor 4 Wochen...
Zahlen mit Nicht Verefizierten Paypal Account?
09/20/2011 - Off Topic - 9 Replies
Hallo wie der Titel Schon sagt Möchte ich gerne Wissen ob man mit einem nicht Verefirzierten (Rechtschreibung Suckt) Paypal Account normal Bezahlen kann LG Chakratos
Hilfe: Zahlen oder nicht?!?!?
06/28/2010 - Off Topic - 20 Replies
Hey habe mich zum spaß bei Vivis-homepage.de angemeldet dann kam per post das ich 59 euro zahlen muss. Muss ich ejtzt zahlen doer nicht bin auch erst 16 und habe schon vom Widerrufsrecht gebrauch gemacht und geschrieben: Hiermit kündige ich meinen Account bei vivis-homepage.de. Kann da noch was passieren??
Bei mir funktioniert das Löschcode nicht. Er hat mal funktioniert
01/07/2010 - Metin2 Private Server - 0 Replies
Hi. Also auf mienem PServer geht das mit dem Löschcode nicht. Kann mir jemand sagen warum? Ich weiß noch das es mal ging. Aber den Spieler in der Datenbank löschen geht nicht weil da diser lvl 0 charackter bleibt und ich nciht weiß wie man den weg kriegt Bitte kan mir jemand helfen.



All times are GMT +1. The time now is 14:07.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.