C/C++の宿題を片付けます 61代目
■ このスレッドは過去ログ倉庫に格納されています
0468デフォルトの名無しさん
2006/02/22(水) 19:50:49#include <stdio.h>
int nth_element(int * data, int length, int n)
{
int left = 0;
int right = length - 1;
int pivot = data[n];
while (left <= right) {
for (; data[left] < pivot; left++);
for (; data[right] > pivot; right--);
if (left <= right) {
int temp = data[left];
data[left++] = data[right];
data[right--] = temp;
}
}
return ((n >= left) ? nth_element(data + left, length - left, n - left) :
(n <= right) ? nth_element(data, right + 1, n) :
data[n]);
}
int main(void)
{
int data[5];
scanf("%d%d%d%d%d", data, data + 1, data + 2, data + 3, data + 4);
printf("%d\n", nth_element(data, 5, 2));
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています