类 求数组最大最小平均

package com.ctu.java.exer;

public class TestArray {

	public static void main(String[] args) {
		int[] arr = new int[]{12,4,76,0,-98,-54,4,100};

		ArrayUtil au = new ArrayUtil();
		int max = au.getMax(arr);
		System.out.println("最大值为:" + max);
		int avg = au.avg(arr);
		System.out.println("平均值为:" + avg);
		au.printArray(arr);
		System.out.println("反转数组:" );
		au.reverse(arr);
		au.printArray(arr);
		System.out.println("对数组排序:");
		au.sort(arr,"asc");
		au.printArray(arr);
		// TODO Auto-generated method stub

	}
package com.ctu.java.exer;

public class ArrayUtil {
public int getMax(int[] arr){
int max = arr[0];
for(int i = 1; i < arr.length;i++){
if(max < arr[i]){
max = arr[i];
}
}
return max;
}
public int getMin(int[] arr){
int min  = arr[0];
for(int i = 1; i < arr.length;i++){
if(min > arr[i]){
min = arr[i];
}
}
return min ;
}
public void printArray(int[] arr){
System.out.print("[");
for(int i = 0; i < arr.length;i++){
System.out.print(arr[i]+ "\t");
}
System.out.println("]");
}
public int avg(int[] arr){
int sum = getSum(arr);
return sum/arr.length;
}
public int getSum(int[] arr){
int sum = 0;
for(int i =0 ; i < arr.length;i++){
sum +=arr[i];
}
return sum;
}
public int[] reverse(int[] arr){
for(int x = 0,y = arr.length -1; x<y;x++,y--){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
return arr ;
}
public int[] copy(int[] arr){
int[] arr1 = new int [arr.length];
for(int i = 0; i < arr.length ;i++){
arr1[i] = arr[i];
}
return arr1;
}
public void sort(int[] arr,String desc){
if(desc == "asc"){
for(int i = 0; i < arr.length-1;i++){
for(int j = 0;j < arr.length - 1 -i;j++){
     if(arr[j] > arr[j + 1]){
swap(arr,j,j+1);
}
}
}
}else if(desc == "desc"){
for(int i = 0; i < arr.length-1;i++){
for(int j = 0;j < arr.length - 1 -i;j++){
     if(arr[j] < arr[j + 1]){
     swap(arr,j,j+1);
}
}
}
}else{
System.out.println("你输入的方式有误!");
}
}
public void swap(int[] arr,int i ,int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}

}

时间: 2024-10-06 07:33:17

类 求数组最大最小平均的相关文章

算法题:求数组中最小的k个数

说明:本文仅供学习交流,转载请标明出处,欢迎转载! 题目:输入n个整数,找出其中最小的k个数. <剑指offer>给出了两种实现算法: 算法1:采用Partition+递归法,该算法可以说是快速排序和二分查找的有机结合.算法的时间复杂度为O(n),缺点在于在修改Partition的过程中会修改原数组的值. 算法2:采用top-k算法.如果要找最小的K个数,我们才用一个含有K个值的大顶堆:如果要找最大的K个数,我们采用小顶堆.该算法的时间复杂度为O(nlogK),是一种比较好的算法,启发于堆排序

求数组中最小的数值(结合apply() call())

// 求一个数组中的最小值 Math.min.apply(this,[100,2,3])call() apply() 改变作用域,区别:第二个参数不同 call(this,name:'hjdj',age:17) 单个写, apply(this,[{name:'hjdj'},{age:17}])数组形式 求数组中确定值的索引$.inArray(200,[100,200,300]) 返回1 原文地址:https://www.cnblogs.com/yaomengli/p/10148269.html

求数组中最小的k个数

题目:输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. package test; import java.util.ArrayList; import java.util.Comparator; import java.util.PriorityQueue; import org.junit.Test; public class GetLeastNumbers_Solution { /** * 基于优先队列,时间复杂度为

求数组的最小数、最大值,求一组数的平均数,sort函数详解,类数组转数组

求数组的最小值和最大值 1 //求数组当中最大值和最小值 2 var arr=[3,2,6,1,45,23,456,23,2,6,3,45,37,89,30]; 3 //第一种方法 根据排序方法来求最大值和最小值 从小到大排序 第0位就是最小值 最后一位就是最大值 4 arr.sort(function(a,b){ 5 return a-b; //按从小大的情况排序 6 //return b-a; 按从大到小的情况排序 7 }) 8 console.log(arr); 9 var min=arr

编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类。Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分;School 中计算平均分的方法是所有科目的分数之和除以总科目数。 要求:定义ComputerAv

题目: 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数. 定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类. Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分: School 中计算平均分的方法是所有科目的分数之和除以总科目数. 要求:定义ComputerAverage的对象为上转型对象,并调用重写的方法averge. 题目用到:1.方法的多态

【C语言】求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素

//求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素 #include <stdio.h> #include <string.h> int find_min(int arr[],int len) { int i = 0; for (i = 1; i < len; i++) { if (arr[i] < arr[0]) return arr[i]; } return arr[0]; } int main() { int i; int arr1[] =

第十六周oj刷题——Problem K: 填空题:类模板---求数组的最大值

Description 类模板---求数组的最大值 找出一个数组中的元素的最大值,数组大小为10.(用类模板来实现) 数组元素类型作为类模板的参数. Input 10个int型数据 10个double型数据 10个char型数据 10gestring型数据 Output 10个int型数据的最大值 10个double型数据的最大值 10个char型数据的最大值 10个string型数据的最大值 Sample Input 1 3 5 7 9 8 6 4 2 0 1.2 3.4 5.66 7.8 9

求旋转数组的最小数字算法的解析以及完整c语言代码实现

首先了解什么是旋转数组:即把一个数组的最开始的若干个元素搬到数组的末尾,即成为旋转数组,例如数组{3,7,1,8,2}为{1,8,2,3,7}的一个旋转数组. 题目:输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素,例如{1,2,3,4,5}数组的一个旋转数组{3,4,5,1,2},其最小的元素为1, 解析:看到题目以后,我们首先可能会想到遍历这个数组,即可找到最小的元素,时间复杂度为o(n),但是这个思路显然没有利用到数组是递增排序的特性,因此我们得继续寻找更优 的方法,因为原本数组是

C++求出旋转数组的最小数字

今天遇到这么一道题目,感觉很有意思,要记下来! 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1. NOTE:给出的所有元素都大于0,若数组大小为0,请返回0. 遇到这道题的时候,第一反应就是一个很常见也很普通的解法,遍历整个数组找出最小的数字.代码如下: int minNumberInRotateArray(vector<i