如何使用一次for循环得到数组中第二大的数

装载声明:http://blog.csdn.net/lxsmk9059/article/details/77920206?locationNum=1&fps=1

 1 int array[] = {1,12,58,369,45,17,59,3654,370};
 2     int max = array[0];
 3     int secondmax = array[0];
 4
 5     for(int i = 0; i < sizeof(array)/sizeof(int); i++)
 6     {
 7         if(array[i] > max)
 8         {
 9             secondmax = max;
10             max = array[i];
11         }
12         else if(array[i] > secondmax)
13         {
14             secondmax = array[i];
15         }
16     }

原文地址:https://www.cnblogs.com/lucong-white/p/8604142.html

时间: 2024-10-11 19:10:55

如何使用一次for循环得到数组中第二大的数的相关文章

如何找出数组中第二大的数

1.最容易想到的办法 我们可以用最简单的办法来找到一个数组中任意大小的数字,那就是按照某一个排序方式将数组的所有元素进行排序,然后按需取出来就可以,知识这种方式的时间复杂度和空间复杂度比较大,所以,有了下面这种方式 2.通过设置两个变量来进行判断 这种方式可以只通过一遍扫描数组即可找到第二大数,具体的形式如下:先定义两个变量:一个变量用来存储数组的最大数,初始值为数组首元素,另一个变量用来存储第二大的数,初始值为最小负整数,然后遍历数组元素,如果数组元素的值比最大数变量还大,更新最大数:若数组元

求出整形数组中第二大的数的值

1 int findsecond(int a[], int size) 2 { 3 int max = a[0]; 4 int second = a[1]; 5 int index = 0; 6 for (int i = 0; i < size; ++i) 7 { 8 if (max < a[i]) 9 { 10 second = max; 11 index = i; 12 max = a[i]; 13 } 14 else if (max > a[i]) 15 { 16 if (seco

python找出数组中第二大的数

#!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:找出数组中第2大的数字 ''' def find_Second_large_num(num_list):   '''''   找出数组中第2大的数字   '''   #直接排序,输出倒数第二个数即可   tmp_list=sorted(num_list)   print 'Second_large_num is:', tmp_list[-2]   #设置两个标志位一个存储最

找出一个整形数组中第二大的数字

如何在时间复杂度为O(n)内找出数组中第二大的数字? 通过设置两个变量,一个保存最大值,一个保存第二大值,通过在找最大值的过程中,原来的最大值逐渐变为第二大值.一种实现代码如下(Java版): 1 /** 2 * 在时间复杂度为O(n)内找出数组的第二大的数字 3 * @author JiaJoa 4 * 5 */ 6 public class Algorithm_GetSecondMax { 7 8 public static void main(String[] args) { 9 // T

求数组中第二大的值

/* 所有c语言代码,都是在LoadRunner中运行: */Action(){ int a[]={12,34,565,23,24,667,89,98};//定义一个int数组: int len;//记录数组元素个数: int max;//所求的最大值: int max_2;//第二大的值: int i;//循环变量:LoadRunnerg中,不能在for循环中定义变量: len = sizeof(a)/sizeof(int);//数组元素个数=数组所占字符数/数组元素类型所占字符数; max

约瑟夫问题 算法很简单保证每隔人都能看懂用数组实现 利用循环删除数组中的元素

#include<iostream> using namespace std; const int size = 1000; void ArrDel() { int arr[size]; //循环结束标志,一直循环到数组中只剩下最后一个元素结束 int currentNum = size; int count = 0; for (int k = 0; k < size; k++) { arr[k] = k; } //currentNum==1表示数组中只剩下最后一个元素 是循环结束的标志

JS实现循环删除数组中元素的方法介绍

这篇文章主要给大家介绍了关于Javascript循环删除数组中元素的几种方法,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面来看看详细的介绍: 发现问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的需求.按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可.但是实际情况往往不会像预想的那样顺利

循环删除数组中元素的正确方法

1.循环删除数组中元素的正确方法 提起循环删除数组中的元素,最先想到的就是使用for循环和数组的splice方法来实现(正序循环删除方法),如下代码用来实现删除数组中大于2的元素: 1 let arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]; 2 for (let i = 0, len = arr.length; i < len; i++) { 3 if (arr[i]> 2) { 4 arr.splice(i, 1); 5 } 6 } 7 console.log(arr)

求数组第二大的数(选择排序)

定义一个最大 和第二大的数 每次循环都判断数组中是否有比最大的数大的有则交换两者的值同时 把原来最大数的值赋值给第二大的 public class SecondMax { public static int FindSecMax(int[] data) { int count = data.length; int maxnumber = data[0]; int sec_max = Integer.MIN_VALUE; for(int i = 1;i<count;i++) { if(data[i