无序数列中查找最大的两个数
无序数列中查找最大的两个数
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