从长度为n的整形数组中返回m个最大数(不许使用排序)
2011-02-21 23:05
190 查看
1 public static int[] GetTheManyMaxValues(int[] arr, int number)
2 {
3 if (arr == null || number <= 0 || arr.Length < number) return null;
4 List<int> lst = new List<int>();
5 for (int i = 0; i < number; i++)
6 {
7 lst.Add(arr[i]);
8 }
9 for (int i = number; i < arr.Length; i++)
10 {
11 int min = GetTheMinValue(lst);
12 if (min < arr[i])
13 {
14 lst.Remove(min);
15 lst.Add(arr[i]);
16 }
17 }
18 return lst.ToArray();
19 }
1 public static int GetTheMinValue(List<int> lst)
2 {
3 int min = lst[0];
4 foreach (int number in lst)
5 {
6 if (min > number)
7 {
8 min = number;
9 }
10 }
11 return min;
12 }
2 {
3 if (arr == null || number <= 0 || arr.Length < number) return null;
4 List<int> lst = new List<int>();
5 for (int i = 0; i < number; i++)
6 {
7 lst.Add(arr[i]);
8 }
9 for (int i = number; i < arr.Length; i++)
10 {
11 int min = GetTheMinValue(lst);
12 if (min < arr[i])
13 {
14 lst.Remove(min);
15 lst.Add(arr[i]);
16 }
17 }
18 return lst.ToArray();
19 }
1 public static int GetTheMinValue(List<int> lst)
2 {
3 int min = lst[0];
4 foreach (int number in lst)
5 {
6 if (min > number)
7 {
8 min = number;
9 }
10 }
11 return min;
12 }
相关文章推荐
- java数组根据字符串长度排序,并根据包含关系返回最大字符串
- 返回数组中的最大值和删除数组重复值-排序
- 【C语言】【笔试题】使用回调函数编写冒泡排序,可以排序整形数组,也可以排序字符串
- leetcode 排序数组去重复并返回新数组长度Remove Duplicates from Sorted Array
- 长度为n的整形数组,找出其中的任意n-1个数乘积最大的那一组
- 实现冒泡排序。(排序整形数组)。使用数组和指针两种方法。
- js对数组进行排序,删除,添加,返回新的数组长度内容
- 第十四周项目一数组大折腾(4)创建一个长度为16的整形数组a并初始化,删除数组中所有能被3整除的元素(数组中实际有效使用的元素将不足16),输出删除后数组中的全部元素
- 求整形数组中最大递增序列的长度
- 11_5_3给people添加GetOldest()方法,使用上面定义的重载运算符,返回一个Age最大的对象数组
- 有一个整形数组int[]arr,将里面的值排序为最大值后输出
- 【C语言】【笔试题】使用回调函数编写冒泡排序,可以排序整形数组,也可以排序字符串
- 排序好的数组,删除重复数,返回操作后长度
- Java学习笔记30. 数组的使用(长度、遍历、最大最小值,查找)
- 编写一个使用数组类模板Array对数组进行排序、求最大值和求元素和的程序,并采用相关数据进行测试。
- 题目:给一个排序好的整数数组A,请写一个函数,输入是数组A和一个整数x,返回数组A中值小于x的最大元素的索引值
- [ASP]使用RecordSet对象的GetRows方法(返回而为数组)和RS.MaxRecords(指定记录集的最大容量)
- 删除有序数组中的重复元素,返回数组的新长度,但允许最大重复次数为2
- 比较两个数大小并返回(不许使用内置方法或者排序)
- 给定一个排序数组,删除重复的位置,使每个元素只出现一次,并返回新的长度。