fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. // Funciones de búsqueda
  5. int busquedaLineal(int arr[], int n, int clave) {
  6. for (int i = 0; i < n; i++) {
  7. if (arr[i] == clave) return i;
  8. }
  9. return -1;
  10. }
  11.  
  12. int busquedaBinaria(int arr[], int inicio, int fin, int clave) {
  13. while (inicio <= fin) {
  14. int medio = inicio + (fin - inicio) / 2;
  15. if (arr[medio] == clave) return medio;
  16. if (arr[medio] < clave) inicio = medio + 1;
  17. else fin = medio - 1;
  18. }
  19. return -1;
  20. }
  21.  
  22. // Algoritmos de ordenamiento
  23. void burbuja(int arr[], int n) {
  24. for (int i = 0; i < n - 1; i++) {
  25. for (int j = 0; j < n - i - 1; j++) {
  26. if (arr[j] > arr[j + 1]) {
  27. swap(arr[j], arr[j + 1]);
  28. }
  29. }
  30. }
  31. }
  32.  
  33. void seleccion(int arr[], int n) {
  34. for (int i = 0; i < n - 1; i++) {
  35. int min_idx = i;
  36. for (int j = i + 1; j < n; j++) {
  37. if (arr[j] < arr[min_idx]) min_idx = j;
  38. }
  39. swap(arr[i], arr[min_idx]);
  40. }
  41. }
  42.  
  43. void insercion(int arr[], int n) {
  44. for (int i = 1; i < n; i++) {
  45. int clave = arr[i];
  46. int j = i - 1;
  47. while (j >= 0 && arr[j] > clave) {
  48. arr[j + 1] = arr[j];
  49. j--;
  50. }
  51. arr[j + 1] = clave;
  52. }
  53. }
  54.  
  55. int main() {
  56. int arr[] = {5, 3, 8, 1, 2};
  57. int n = sizeof(arr)/sizeof(arr[0]);
  58.  
  59. cout << "Ordenando con burbuja..." << endl;
  60. burbuja(arr, n);
  61. for (int num : arr) cout << num << " ";
  62. cout << endl;
  63.  
  64. int clave = 3;
  65. int resultado = busquedaBinaria(arr, 0, n - 1, clave);
  66. cout << "Elemento encontrado en la posición: " << resultado << endl;
  67. return 0;
  68. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Ordenando con burbuja...
1 2 3 5 8 
Elemento encontrado en la posición: 2