数据结构-绪论作业

数据结构—绪论作业

1、从一组N个数中确定其中的第k个最大者的问题称为选择问题(selection problem),请编写一个程序解决选择问题。要求使用泛型


泛型,泛型,泛型。。


/*
 * 绪论作业
 * 1、从一组N个数中确定其中的第k个最大者的问题称为选择问题(selection problem),请编写一个程序解决选择问题。要求使用泛型。
 */
package Test1;

class Selection {
	Number select(T number[],int k){
		for(int i=0;i select= new Selection();
		int k=3;
		System.out.println(select.select(number, k));
	}
}




 2.编写一个递归方法,它返回数N的二进制表示中1的个数。利用这样的事实:如果N是奇数,那么其1的个数等于N/2的二进制表示中1的个数加1


分析一下,偶数的二进制表示,最后一位一定是0,奇数最后一位是1。所以偶数N二进制表示中1的个数 和 N/2  是一样的,奇数N二进制表示中1的个数 和 N/2 + 1相等,0的二进制表示中1的个数是0;

然后递归就行了。

/*
 * 绪论作业
 * 2.编写一个递归方法,它返回数N的二进制表示中1的个数。利用这样的事实:如果N是奇数,那么其1的个数等于N/2的二进制表示中1的个数加1
 */
package Test1;
import java.util.*;
class SumOfBinary{
	int sumOfBinary(int n){
		if(n<0)
			n=-n;
		if(n==0){
			return 0;
		}
		else if(n%2!=0){
			return sumOfBinary(n/2)+1;
		}
		else{
			return sumOfBinary(n/2);
		}
	}
}

public class Test1_2 {
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		SumOfBinary sumofbinary = new SumOfBinary();
		int num=input.nextInt();
		input.close();
		System.out.println(num+"二进制表示中1的个数是:"+sumofbinary.sumOfBinary(num));
	}
}




你可能感兴趣的:(数据结构)