读书人

求排序算法,该如何解决

发布时间: 2012-07-05 07:59:17 作者: rapoo

求排序算法
求一组数组中最大的5个元素,并按数组中数的出现顺序排列.

C# code
int[]{5,9,3,2,0,8,7,1,9};


现在的问题是已经找到最大的5个数,但不知道如何让其按数组中出现的顺序排列.

返回结果:5,9,8,7,9


[解决办法]
已经找到了5个数,遍历原来的数组判断是否包含在5个数里,把没有的清除掉就好了。
[解决办法]
C# code
            int[] arr = { 5, 9, 3, 2, 0, 8, 7, 1, 9 };            List<int> list = arr.OrderByDescending(x => x).Take(5).ToList<int>();            arr.ToList().ForEach(x => { if (list.Contains(x))Console.WriteLine(x); });
[解决办法]
C# code
  int[] int_array=new int[]{5,9,3,2,0,8,7,1,9};                int_array=int_array.Select((a, i) => new { index = i, value = a }).OrderByDescending(a => a.value).Take(5).OrderBy(a => a.index).Select(a=>a.value).ToArray();                /*                        [0]    5    int                        [1]    9    int                        [2]    8    int                        [3]    7    int                        [4]    9    int                 */ 

读书人网 >asp.net

热点推荐