Explique la funcionalidad de las siguientes funciones.
Pregunta 1
C++
int fun1(int x, int y) { if (x == 0) return y; else return fun1(x - 1, x + y); }
C
int fun1(int x, int y) { if (x == 0) return y; else return fun1(x - 1, x + y); }
Java
static int fun1(int x, int y) { if (x == 0) return y; else return fun1(x - 1, x + y); }
Python3
def fun1(x, y) : if (x == 0) : return y else : return fun1(x - 1, x + y) # This code is contributed by divyesh072019
C#
static int fun1(int x, int y) { if (x == 0) return y; else return fun1(x - 1, x + y); } // This code is contributed by divyesh072019
Javascript
<script> function fun1(x, y) { if (x == 0) return y else return fun1(x - 1, x + y) } // This code is contributed by gottumukkalabobby </script>
Respuesta: La función fun() calcula y devuelve ((1 + 2 … + x-1 + x) +y), que es x(x+1)/2 + y. Por ejemplo, si x es 5 e y es 2, fun debería devolver 15 + 2 = 17.
Pregunta 2
C++
// minimum index finder int minIndex(int arr[], int s, int e) { int sml = INT32_MAX; int mindex; for (int i = s; i < e; i++) { if (sml > arr[i]) { sml = arr[i]; mindex = i; } } return mindex; } void fun2(int arr[], int start_index, int end_index) { if (start_index >= end_index) return; int min_index; int temp; // minIndex() returns index of minimum value in // array arr[start_index...end_index] min_index = minIndex(arr, start_index, end_index); // swap the element at start_index and min_index swap(arr[start_index], arr[min_index]); fun2(arr, start_index + 1, end_index); } // This code is contributed by nishant_0073
C
// minimum index finder int minIndex(int arr[], int s, int e) { int sml = INT32_MAX; int mindex; for (int i = s; i < e; i++) { if (sml > arr[i]) { sml = arr[i]; mindex = i; } } return mindex; } void fun2(int arr[], int start_index, int end_index) { if (start_index >= end_index) return; int min_index; int temp; // minIndex() returns index of minimum value in // array arr[start_index...end_index] min_index = minIndex(arr, start_index, end_index); temp = arr[start_index]; arr[start_index] = arr[min_index]; arr[min_index] = temp; fun2(arr, start_index + 1, end_index); }
Java
// minimum index finder static int minIndex(int arr[], int s, int e) { int sml = Integer.MAX_VALUE; int mindex = ; for (int i = s; i < e; i++) { if (sml > arr[i]) { sml = arr[i]; mindex = i; } } return mindex; } static void fun2(int arr[], int start_index, int end_index) { if (start_index >= end_index) return; int min_index; int temp; // minIndex() returns index of minimum value in // array arr[start_index...end_index] min_index = minIndex(arr, start_index, end_index); temp = arr[start_index]; arr[start_index] = arr[min_index]; arr[min_index] = temp; fun2(arr, start_index + 1, end_index); } // This code is contributed by nishant_0073
Python3
# Minimum index finder def minIndex(arr, s, e): sml = sys.maxsize mindex = 0 for i in range(s, e): if (sml > arr[i]): sml = arr[i] mindex = i return mindex def fun2(arr, start_index, end_index): if (start_index >= end_index): return # minIndex() returns index of minimum value in # array arr[start_index...end_index] min_index = minIndex(arr, start_index, end_index) arr[start_index], arr[min_index] = arr[min_index], arr[start_index] fun2(arr, start_index + 1, end_index) # This code is contributed by rag2127
C#
// minimum index finder static int minIndex(int[] arr, int s, int e) { int sml = Int32.MaxValue; int mindex; for(int i = s; i < e; i++) { if(sml > arr[i]) { sml = arr[i]; mindex = i; } } return mindex; } static void fun2(int[] arr, int start_index, int end_index) { if(start_index >= end_index) { return; } int min_index; int temp; // minIndex() returns index of minimum value in // array arr[start_index...end_index] min_index = minIndex(arr, start_index, end_index); temp = arr[start_index]; arr[start_index] = arr[min_index]; arr[min_index] = temp; fun2(arr, start_index + 1, end_index); } // This code is contributed by avanitrachhadiya2155
Javascript
<script> //Javascript Implementation // minimum index finder function minIndex(arr, s, e) { var sml = Number.MAX_SAFE_INTEGER; var mindex; for (int i = s; i < e; i++) { if (sml > arr[i]) { sml = arr[i]; mindex = i; } } return mindex; } function fun2(arr, start_index, end_index) { if (start_index >= end_index) return; var min_index; var temp; // minIndex() returns index of minimum value in // array arr[start_index...end_index] min_index = minIndex(arr, start_index, end_index); // swap the element at start_index and min_index temp = arr[start_index]; arr[start_index] = arr[min_index]; arr[min_index] = temp; fun2(arr, start_index + 1, end_index); } // This code is contributed by shubhamsingh10 </script>
Respuesta: La función fun2() es una implementación recursiva de Selection Sort.
Complejidad temporal: O(N 2 )
Espacio Auxiliar: O(1)
Escriba comentarios si encuentra que alguna de las respuestas/códigos es incorrecta, o si desea compartir más información sobre los temas discutidos anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA