C/C++の宿題を片付けます 64代目
■ このスレッドは過去ログ倉庫に格納されています
0223デフォルトの名無しさん
2006/05/06(土) 21:17:43int binary_search (int *data, int data_no, int key_data)
{
int right, left, center;
left = 0;
right = data_no - 1;
while (right >= left){
center = (left + right) / 2;
if (data[center] == key_data){
return (-1);
}
else if(data[center] < key_data){
left = center + 1;
}
else if(data[center] > key_data){
right = center - 1;
}
}
return(left);
}
int add_data(int *data, int data_num, int add_data){
int pos;
if ( (pos=binary_search (data, data_num, add_data)) == -1)
{
return FAIL;
}
memmove(&data[pos+1], &data[pos], (data_num-pos)*sizeof(data_num));
data[pos]=add_data;
return SUCCESS;
}
■ このスレッドは過去ログ倉庫に格納されています