无序数列中查找最大的两个数

无序数列中查找最大的两个数

 

 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 

 

 

posted @ 2010-03-23 22:37  Freedom  阅读(984)  评论(0编辑  收藏  举报