Le tri de tableau à deux dimensions en C en se basant uniquement sur la première colonne

J'ai un double-type de tableau avec 2 colonnes et un nombre maximum de lignes de 1000, que j'ai envie de tri basé sur le premier élément de chaque ligne, puis passer l'ensemble de la ligne. En fait, je veux la deuxième colonne de l'élément de n'avoir aucun impact.

Je vous présente la matrice:

double A[1000][2];

dans ma main.
Un exemple pourrait être:

18.0 2.0

5.5 3.5

10.0 8.1

4.0 2.5

Après le tri, je voudrais qu'elle ressemble à ceci:

4.0 2.5

5.5 3.5

10.0 8.1

18.0 2.0

Il serait également bon de savoir comment faire pour avoir un tri dans le sens inverse, de sorte qu'il ressemble à ceci:

18.0 2.0

10.0 8.1

5.5 3.5

4.0 2.5

Remarquez comment il est seulement être classées sur la base de la valeur dans la première colonne, puis l'ensemble de la ligne obtient commuté.

J'ai essayé d'utiliser un assez standard d'insertion algorithme de tri, avec juste changer la source d'entrée argument le tableau à deux dimensions, et d'avoir un bloc de code à l'intérieur de la fonction qui modifie à la fois les éléments de la ligne, mais j'ai continué à obtenir cette erreur:

erreur: le tableau est incomplet élément de type " double []'
sort_double_array(double A[][], int n) {

Comment dois-je faire? Serait agréable d'être en mesure de le faire en utilisant le tri par insertion. Je peux poster la fonction que j'utilise pour le tri par insertion, mais il fonctionne parfaitement pour une dimensions des tableaux.

Merci beaucoup à l'avance, vraiment coincé ici.

Acclamations,

James.

utilisation qsort par écrire de la fonction de comparaison.

OriginalL'auteur James Adams | 2014-04-23