任意给定一整数数组,求两个元素之差的最大值和数组中出现次数最多的数
作者:亦心 来源:博客园 发布时间:2009-11-19 13:16 阅读:645 次 原文链接 [收藏]
要求:不允许使用库函数及外部库,不允许使用现成的排序算法和哈希算法函数 1、两个元素之差的最大值
private static void GetMaxMin(int[] arrys) {
//int[] arrys = new int[] { 3, 5, 1, 6, 9, 8, 4, 7, 2 }; int max = arrys[0]; int min = arrys[0];
for (int i = 0; i < arrys.Length; i++) {
if (arrys[i] > max) max = arrys[i]; if (arrys[i] < min) min = arrys[i]; }
Console.WriteLine(\"Max为:{0},Min为{1},差为{2}\ }
//2、数组中出现次数最多的数 /// /// 得到去重复的数组 ///
/// ///
private static int[] GetNewArry(int[] arrys) {
for (int i = 0; i < arrys.Length; i++) {
for (int j = i + 1; j < arrys.Length; j++) {
if (arrys[i] == arrys[j]) arrys[i] = 0; } }
List for (int k = 0; k < arrys.Length; k++) { if (arrys[k] != 0) list.Add(arrys[k]); } int[] arryNew = new int[list.Count]; for (int n = 0; n < list.Count; n++) { arryNew[n] = list[n]; } return arryNew; } /// /// 得到出现最多次数的数 /// /// /// /// private static int GetMaxCountNum(int[] arrysOld, int[] arrysNew) { int count = GetMaxCount(arrysOld, arrysNew); int tmp = 0; for (int i = 0; i < arrysNew.Length; i++) { for (int j = 0; j < arrysOld.Length; j++) { if (arrysNew[i] == arrysOld[j]) { tmp++; } } if (count == tmp) { return arrysNew[i]; } tmp = 0; } return 0; } /// /// 得到出现最多的次数 /// /// /// /// private static int GetMaxCount(int[] arrysOld, int[] arrysNew) { int maxCount = 0; int count = 0;//次数 //int[] arrysCount = new int[arrysNew.Length]; for (int i = 0; i < arrysNew.Length; i++) { for (int j = 0; j < arrysOld.Length; j++) { if (arrysNew[i] == arrysOld[j]) { count++; } } //arrysCount[i] = count; if (count > maxCount) { maxCount = count; } count = 0; } return maxCount; } /// /// 得到数组中的最大数 /// /// /// private static int GetMaxNum(int[] arrys) { int max = arrys[0]; for (int i = 0; i < arrys.Length; i++) { if (arrys[i] > max) max = arrys[i]; } return max; } /// /// 得到数组中零出现的次数 /// /// /// private static int GetMaxCountIsZero(int[] arrys) { int count = 0; for (int i = 0; i < arrys.Length; i++) { if (arrys[i] == 0) count++; } return count; } /// /// 克隆一个整型数组 /// /// /// private static int[] CloneArry(int[] arrys) { int[] arrysNew = new int[arrys.Length]; for (int i = 0; i < arrys.Length; i++) { arrysNew[i] = arrys[i]; } return arrysNew; } 因篇幅问题不能全部显示,请点此查看更多更全内容