c语言 一维数组折半查找法
Problem statement: Write a C program to find second largest element in a one dimensional array.
问题陈述:编写C程序以查找一维数组中的第二大元素。
Example:
例:
Input :
arr[] = {10, 8, 7, 12, 14, 9}
Output :
Second largest element: 12
Input :
arr[] = {4, 6, 11, 10, 4}
Output :
Second largest element: 10
Algorithm:
算法:
Declare two variables first_large_ele and second_large_ele as int.
将两个变量first_large_ele和second_large_ele声明为int 。
Initialise both the variable with INT_MIN (i.e 0), first_large_ele = second_large_ele = 0.
使用INT_MIN (即0), first_large_ele = second_large_ele = 0初始化两个变量。
Run for loop over array.
运行数组循环。
- if array[index] is greater than first_large_ele variable value then update the second_large_ele with first_large_ele variable value (i.e second_large_ele = first_large_ele) and assign array[index] value to first_large_ele variable (i.e first_large_ele = array[index]).
- 如果array [index]大于first_large_ele变量值,则使用first_large_ele变量值(即second_large_ele = first_large_ele )更新second_large_ele , 并将 array [index]值分配给first_large_ele变量(即first_large_ele = array [index] )。
- if the array[index] is in between of first_large_ele and second_large_ele variable value then update the second_large_ele variable with array[index] (i.e econd_large_ele = array[index]).
- 如果array [index]在first_large_ele和second_large_ele变量值之间,则使用array [index]更新second_large_ele变量(即econd_large_ele = array [index] )。
Return the second_large_ele.
返回second_large_ele 。
C实现在一维数组中查找第二大元素 (C implementation to find second largest elements in a one dimensional array)
//
// main.c
// Second largest element in the array
//
// Created by Anshuman Singh on 22/06/19.
//
#include <stdio.h>
#include <stdlib.h>
int second_largest_element(int arr[], int length) {
int first_large_ele = 0, second_large_ele = 0, index;
if (length < 2) {
printf("Error: Array has less than two element !!!");
}
for (index = 0; index < length; index++) {
if (first_large_ele < arr[index]) {
second_large_ele = first_large_ele;
first_large_ele = arr[index];
}
else if (arr[index] != first_large_ele && \
second_large_ele < arr[index] && \
second_large_ele < first_large_ele) {
second_large_ele = arr[index];
}
}
return second_large_ele;
}
int main() {
int size, index;
printf("Enter the size of array: ");
scanf("%d", &size);
int arr[size];
int array_length = (int)sizeof(arr) / sizeof(int);
printf("\nEnter the array elements: ");
for (index = 0; index < array_length; index++) {
scanf("%d", &arr[index]);
}
printf("Second largest element: %d ", second_largest_element(arr, array_length));
return 0;
}
Output
输出量
Enter the size of array: 5
Enter the array elements: 11 22 44 55 33
Second largest element: 44
翻译自: https://www.includehelp.com/c-programs/find-second-largest-elements-in-a-one-dimensional-array.aspx
c语言 一维数组折半查找法
2万+




被折叠的 条评论
为什么被折叠?



