无序数列中查找最大的两个数
1
using
System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace FindBiggest
7 {
8 class Program
9 {
10 static void Main( string [] args)
11 {
12 int [] a = { 1 , 3 , 7 , 9 , 2 , 0 , 3 , 1 , 22 , 33 , 2 , 333333 , 3333 , 3333 , 4444 , 333 , 333 , 9999999 };
13 int big1 = int .MinValue;
14 int big2 = int .MinValue;
15 Console.WriteLine(formatArray(a));
16 Find(a, out big1, out big2);
17 Console.WriteLine( " big1={0};big2={1} " , big1, big2);
18 Console.Read();
19 }
20 /// <summary>
21 /// 无序数列中查找最大的两个数
22 /// </summary>
23 /// <param name="a"></param>
24 /// <param name="big1"></param>
25 /// <param name="big2"></param>
26 static void Find( int [] a, out int big1, out int big2)
27 {
28 if (a == null || a.Length < 2 )
29 throw new ArgumentException();
30 big1 = 0 ;
31 big2 = 0 ;
32
33 // check arguments
34 // big1 < big2;
35 if (a[ 0 ] < a[ 1 ])
36 {
37 big1 = a[ 0 ];
38 big2 = a[ 1 ];
39 }
40 else {
41 big1 = a[ 1 ];
42 big2 = a[ 2 ];
43 }
44 int i = 2 ;
45 while (i < a.Length)
46 {
47 if (a[i] > big1 && a[i] < big2)
48 {
49 big1 = a[i];
50 }
51 else if (a[i] > big2)
52 {
53 big1 = big2;
54 big2 = a[i];
55 }
56 i ++ ;
57 }
58
59 }
60
61 static string formatArray( int [] a)
62 {
63 StringBuilder builder = new StringBuilder();
64 foreach ( int i in a)
65 {
66 builder.Append(i.ToString());
67 builder.Append( " " );
68 }
69 return builder.ToString();
70 }
71 }
72 }
73
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace FindBiggest
7 {
8 class Program
9 {
10 static void Main( string [] args)
11 {
12 int [] a = { 1 , 3 , 7 , 9 , 2 , 0 , 3 , 1 , 22 , 33 , 2 , 333333 , 3333 , 3333 , 4444 , 333 , 333 , 9999999 };
13 int big1 = int .MinValue;
14 int big2 = int .MinValue;
15 Console.WriteLine(formatArray(a));
16 Find(a, out big1, out big2);
17 Console.WriteLine( " big1={0};big2={1} " , big1, big2);
18 Console.Read();
19 }
20 /// <summary>
21 /// 无序数列中查找最大的两个数
22 /// </summary>
23 /// <param name="a"></param>
24 /// <param name="big1"></param>
25 /// <param name="big2"></param>
26 static void Find( int [] a, out int big1, out int big2)
27 {
28 if (a == null || a.Length < 2 )
29 throw new ArgumentException();
30 big1 = 0 ;
31 big2 = 0 ;
32
33 // check arguments
34 // big1 < big2;
35 if (a[ 0 ] < a[ 1 ])
36 {
37 big1 = a[ 0 ];
38 big2 = a[ 1 ];
39 }
40 else {
41 big1 = a[ 1 ];
42 big2 = a[ 2 ];
43 }
44 int i = 2 ;
45 while (i < a.Length)
46 {
47 if (a[i] > big1 && a[i] < big2)
48 {
49 big1 = a[i];
50 }
51 else if (a[i] > big2)
52 {
53 big1 = big2;
54 big2 = a[i];
55 }
56 i ++ ;
57 }
58
59 }
60
61 static string formatArray( int [] a)
62 {
63 StringBuilder builder = new StringBuilder();
64 foreach ( int i in a)
65 {
66 builder.Append(i.ToString());
67 builder.Append( " " );
68 }
69 return builder.ToString();
70 }
71 }
72 }
73