这次我必须创建一个程序来询问用户想要使用的搜索类型(二进制或顺序),如果Binary我必须要求用户键入一个已排序的数组,直到它被排序。 / p>
这里是主要的:
int main(int argc, char** argv) {
int n, decide, inicio, fin, key;
cout << " ¿De que tamaño será tu Arreglo?: ";//What size your array will be?
cin >> n;
int arreglo[n]; // Create the array
cout << " ¿Qué tipo de Busqueda realizaremos hoy?\n\n";//What kind of search we will use?
cout << "\n 1. Busqueda Secuencial.\n 2. Busqueda Binaria.\n\n";
cin >> decide;
cout << "\t\n- - Tu arreglo sera de " << n << " elementos. - -\n";//Your arry will be of "n" elements
switch (decide) {
case 1:
inicializaLista(n, arreglo); // Fill the array.
cout << "\n¿Que numero buscas?"; // Ask for the number we want to search.
cin >> key;
busquedaSecuencial(arreglo, n, key);
break;
case 2:
inicio = 0;
fin = n - 1;
cout << "\nIngrese valores en orden\n";//Type sorted values
inicializaLista(n, arreglo); // fill the array
validarLista(n, arreglo); //validate List
cout << "\n¿Que numero buscas?"; // Ask for the number we want to search.
cin >> key;
busquedaBinaria(arreglo, n, inicio, fin);
break;
}
return 0;
}
这是我的验证功能:
bool validarLista(int n, int arreglo[]) {
cout << "Validando Lista ... ";
for (int i = 0; i < n - 1; i++) {
if (arreglo[i] > arreglo[i + 1]) {
return false; // It is proven that the array is not sorted.
}
}
return true; // If this part has been reached, the array must be sorted.};
}
这是我填充数组的地方
int inicializaLista(int n, int arreglo[]) {
cout << "\n";
for (int i = 0; i < n; i++) {
cout << "Ingrese dato " << i + 1 << ": ";
cin >> arreglo[i];
}
};
我做了一些&#34; do-whiles&#34;并尝试用&#34;如果&#34;和很多结构但不能解决问题。如何正确循环,以便Validation函数不断询问排序数组。 我很抱歉没有用西班牙语翻译所有变量或任何东西,但如果你能帮助我,我会非常感激。
答案 0 :(得分:0)
do {
cout << "\nIngrese valores en orden\n";//Type sorted values
inicializaLista(n, arreglo); // fill the array
} while (!validarLista(n, arreglo));