クイックソート関数

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
TY

クイックソート関数

#1

投稿記事 by TY » 15年前

はじめまして。初めて利用させていただきます。C言語のクイックソート関数についてです。次の問題のプログラムを書いてみたのですが、コマンドプロンプトにエラーが表示されます。プログラムの中で、間違っているところがあれば、アドバイスをお願いします。

・問題
x,y座標で表される、2次元平面上の点を表す構造体pointを次のように定義する。
 struct point{
int x;
int y;
}
この構造体を要素とする配列ptabが次のように定義されていた時、x座標の小さい順に整列したい。
struct point ptab[/url]={{3,5},{2,9},{8,8},{4,5},{1,-5},{7,7},{7,0},{1,4},{5,3}};

・プログラム

#include <stdio.h>
#include <stdlib.h>


struct point{
int x;
int y;
};

int struct_cmp(const int *x,const int *y){


return(*x-*y);
}

int main(void){

struct point ptab[/url]={{3,5},{2,9},{8,8},{4,5},{1,-5},{7,7},{7,0},{1,4},{5,3}};
int i;

qsort(point ptab,sizeof(int),(int(*)(const void*,const void*))struct_cmp);

for(i=0;i<9;i++)
printf("x=%d\t y=%d\n",ptab.x,ptab.y);
}
return (0);
}

fatens

Re:クイックソート関数

#2

投稿記事 by fatens » 15年前

qsort関数に渡す引数の数からして間違っていますが...

もう一度使い方を勉強された方が良いかと思います。
http://www.bohyoh.com/CandCPP/FAQ/FAQ00047.html

TY

Re:クイックソート関数

#3

投稿記事 by TY » 15年前

わかりました。ありがとうございました。もう一度勉強しなおします。

Dixq (管理人)

Re:クイックソート関数

#4

投稿記事 by Dixq (管理人) » 15年前

毎度宣伝しているようですが、
クイックソートについて良く解らなければ是非こちらをご覧ください。

http://dixq.net/sort.html

クイックソートは良く解らないという声にこたえてアニメーションを使って解りやすく解説する為のソフトです。

たかぎ

Re:クイックソート関数

#5

投稿記事 by たかぎ » 15年前

ところで、qsprt関数はクイックソートとは限らないというのはあまり知られていないようですね。
クイックソートは必ずしも最適なアルゴリズムではないので、いろいろ工夫しているようです。

閉鎖

“C言語何でも質問掲示板” へ戻る