【选择算法】选择最大值Findmax()

采用顺序比较算法,从前往后顺序比较n个元素,比较时用max保留到当前为止最大的元素。

伪代码如下:

输入:n个数的数组L

输出:max,k

  1. max\leftarrow L[1];k\leftarrow 1
  2. for\quad i\leftarrow 2 \quad to \quad n \quad do
  3.          if \quad max<L[i]
  4.          then \quad max\leftarrow L[i]
  5.                       k\leftarrow i
  6. return\quad max,k

该算法以元素之间的比较作为基本运算,第2行循环n-1次,因此此算法的时间复杂度为W(n)=n-1.

如果求选最小的数Findmin(),只需将上述算法的比较条件稍加改动即可。


求最大值Findmax()函数C语言程序如下:

void Findmax(int L[10]){
	int max,k,i;
	max = L[0]; 
	for (i = 0; i < 10; i++){
		if (max < L[i]){
			max = L[i]; 
			k = i;
		}
	}
	printf("最大值为%d\n", max);
	printf("最大数为第%d个数\n", k+1);
}

完整代码为:

//算法2.7 Findmax
//输入n个数的数组L
//max k 
#include<stdio.h>
#include<stdlib.h>

void Findmax(int L[10]){
	int max,k,i;
	max = L[0]; 
	for (i = 0; i < 10; i++){
		if (max < L[i]){
			max = L[i]; 
			k = i;
		}
	}
	printf("最大值为%d\n", max);
	printf("最大数为第%d个数\n", k+1);
}

void show(int array[], int len)
{
    int i;
 
    for(i = 0; i < len; i++)
    {
        printf("%-3d", array[i]);
    }
    printf("\n");
 
    return ;
}
int main(){
	int L[10] = { 1,5,3,7,2,4,9,8,0,6 };
	int i;
	show(L,10);
	Findmax(L);
	return 0;
}

运行结果为:

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Kotlin 中,你可以使用以下算法来查询一个数组中的最大值: ``` fun findMax(numbers: IntArray): Int { var max = numbers[0] for (num in numbers) { if (num > max) { max = num } } return max } ``` 你可以调用这个函数来查询数组 `numbers` 中的最大值。例如,你可以这样调用: ``` val numbers = intArrayOf(1, 2, 3, 4, 5) val max = findMax(numbers) ``` 这样,`max` 变量就会保存数组 `numbers` 中的最大值。 ### 回答2: 在 Kotlin 中,可以使用以下代码来编写查询最大值算法: ```kotlin fun findMaxValue(numbers: Array<Int>): Int { var maxValue = numbers[0] // 将第一个元素设为最大值 for (number in numbers) { if (number > maxValue) { maxValue = number // 如果当前元素比最大值大,则将它设为最大值 } } return maxValue } fun main() { val numbers = arrayOf(10, 5, 15, 8, 3) val max = findMaxValue(numbers) println("最大值是: $max") } ``` 这段代码定义了一个名为 `findMaxValue` 的函数,用于查询传入的整数数组中的最大值。在函数中,我们首先将数组中的第一个元素赋值给变量 `maxValue`,然后通过遍历整个数组来找到更大的值。如果当前元素比 `maxValue` 大,则更新 `maxValue` 的值为当前元素。最后函数返回 `maxValue`。 在 `main` 函数中,创建了一个整数数组 `numbers`,并将其作为参数传递给 `findMaxValue` 函数。然后将返回的最大值打印出来。 运行这段代码,输出结果为:最大值是 15。 ### 回答3: 在Kotlin中,可以使用以下代码编写一个查询最大值算法: ```kotlin fun findMaxValue(numbers: List<Int>): Int { var maxValue = Int.MIN_VALUE for (number in numbers) { if (number > maxValue) { maxValue = number } } return maxValue } ``` 这段代码定义了一个名为`findMaxValue`的函数,它接受一个整数列表作为参数,并返回列表中的最大值。我们将`maxValue`初始化为`Int.MIN_VALUE`,这样列表中的任何值都可以大于它。 然后,我们使用`for`循环遍历整数列表中的每个元素。对于每个元素,我们检查它是否大于`maxValue`,如果是,则将`maxValue`更新为当前元素的值。通过这种方式,我们可以找到整个列表中的最大值。 最后,我们返回最大值。 使用这个算法,我们可以轻松地找到任何给定整数列表的最大值。例如,如果我们有一个包含`[3, 9, 5, 1, 7]`的整数列表,调用`findMaxValue([3, 9, 5, 1, 7])`函数将返回`9`作为最大值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值