C言語なら俺に聞け(入門篇) Part 24
■ このスレッドは過去ログ倉庫に格納されています
0464デフォルトの名無しさん
2008/01/31(木) 20:40:07身長の低い順に氏名、学籍番号、身長を画面に出力するプログラムを作成せよ」という問題がでました。
まず、クイックソートのプログラムとしては
#include <stdio.h>
void quick_sort(int sort_data[], int start_index, int end_index )
{
int ascending_index = start_index;
int descending_index = end_index;
int temp_data;
int pivot_value = sort_data[start_index + (end_index - start_index )/2 ];
printf("quicksort %d - %d ",start_index,end_index);
printf("pivot_value %d\n",pivot_value);
do{
while (sort_data[ascending_index] < pivot_value)
ascending_index++;
while (sort_data[descending_index] > pivot_value)
descending_index--;
if (ascending_index > descending_index)
break;
temp_data = sort_data[ascending_index];
sort_data[ascending_index] = sort_data[descending_index];
sort_data[descending_index] = temp_data;
} while ( ++ascending_index <= --descending_index );
if (descending_index > start_index )
quick_sort(sort_data, start_index, descending_index );
if(ascending_index < end_index)
quick_sort(sort_data, ascending_index, end_index );
return;
}
という感じになりました。
■ このスレッドは過去ログ倉庫に格納されています