1、写一个函数,用最简洁的语句实现如下功能:当i和j的和等于14时,返回他们的平均数,否则返回任意一个数。
public int fun(int i, int j)2.完成下面的程序,使用快排、或冒泡、或插入等你所熟悉的排序算法对nums里的数据排序。(如果你实在对JAVA不熟悉,可以使用其他任何语言实现)。(20分)
import java.util.*;
class Sorter
{
public List<Integer> sort(List<Integer> nums)
{需要详细的解释哈
public int fun(int i, int j)2.完成下面的程序,使用快排、或冒泡、或插入等你所熟悉的排序算法对nums里的数据排序。(如果你实在对JAVA不熟悉,可以使用其他任何语言实现)。(20分)
import java.util.*;
class Sorter
{
public List<Integer> sort(List<Integer> nums)
{需要详细的解释哈
if(i+j == 14){
return (i+j)/2;
}else{
return Math.random()*(i+j)
}
不知道...
通过循环去取数组里面的值
假设第一个数字是最大的,把它赋值给nums[0]
再去跟后面的值去判断 if(nums[0]>nums[i+1])
如果后面后面的值比前面的大 就调换
if(i+j == 14){
return (i+j)/2;
}else{
return Math.random();
}
二、
public List <Integer> sort(List <Integer> nums) {
int k;
for(int i=0;i<nums.size();i++){
k=i;
for(int j=k+1;j<nums.size();j++){
if(nums.get(j) < nums.get(k)) {
k = j;
}
}
if(k != i) {
int temp = nums.get(i);
nums.get(i) = nums.get(k);
nums.get(k) = temp;
}
}
return nums;
}
要尽量简洁的话我会这样写:public int fun(int i, int j) {
if (i + j == 14) return 7;
return Math.random() > 0.5 ? i : j;
}解释:i和j的和为14时,平均一定是7,所以直接返回7,不用再做一次额外加法和除法了。否则返回i和i中的任意一个。第二题,排序的代码网上一大堆,我就不写了。
if (i + j == 14) return 7;
return Math.random() > 0.5 ? i : j;
}
public int fun( int i , int j ){
return i + j == 14 ? ( i + j ) / 2 : Math.random() > 0.5 ? i : j ;
}