java 作业_java作业

展开全部

下面一道一道的完成:

第一题:

1)快速排序

package src;

/*

* 有几个关键点

* 1 中间值到底取什么

* 2 i和62616964757a686964616fe78988e69d8331333239303864j的比较什么时候需要是<=

* 3 递归调用的left和right值如何确定

*/

public class QuickSort { //快速排序

public static void main(String[] args) {

int[] a = {100,40, 60, 87, 34, 11, 56, 0};

int left = 0 ;

int right = a.length - 1;

quickSort(a , left , right);

//循环显示数组

for(int i = 0 ; i < a.length ; i++){

System.out.print(a[i] + " ");

}

}

public static void quickSort(int[] a , int left , int right ){

int middle , temp ;

int i = left ;

int j = right ;

middle = a[left];

while(i < j){

while((a[i] < middle) && (i < right)){

i++;

}

while((a[j] > middle) && (j > left)){

j--;

}

if(i <= j){

temp = a[i];

a[i] = a[j];

a[j] = temp;

i++;

j--;

}

}

if(left < j){

quickSort(a , left , j);

}

if(right > i){

quickSort(a , i , right);

}

}

}

2)冒泡排序

package src;

public class PopSort {

public static void main(String[] args) {

int[] a = {100,40, 60, 87, 34, 11, 56, 0};

for(int i = 0 ; i < a.length ; i++)

for(int j = 0 ; j < a.length - i -1 ; j++){

if(a[j] > a[j+1]){

int temp = a[j];

a[j] = a[j+1];

a[j+1] = temp;

}

}

for(int k = 0 ; k < a.length ; k++){

System.out.print(a[k] + " ");

}

}

}

第二题

package src;

public class BinarySearch {

/**

* @param args

* @throws IOException

*/

public static void main(String[] args) {

int[] datas = { 1, 2, 3, 4, 5, 6 ,7, 8, 9, 10}; //二分法必须应用在有序数组

int key = 9;

System.out.println("the result is " + bSearch(datas , key));

}

public static int bSearch(int[] datas , int key){

int index = -1;

int low = 0;

int high = datas.length - 1;

while (low <= high) {

int middle = (low + high) >> 1;

if (key == datas[middle]) {

index = middle;

break;

} else if (key > datas[middle]) {

low = middle + 1;

} else if (key < datas[middle]) {

high = middle - 1;

}

}

return index;

}

}

第三题

package src;

public class CharCode {

public static void main(String[] args){

String str = "hello world";

char[] strToChar = str.toCharArray();

int charSum = 0;

for(int i = 0 ; i < strToChar.length ; i++){

charSum = charSum + strToChar[i];

}

System.out.print("the charArray's Sum is " + charSum);

}

}

第四题

package src;

public class NewArray {

/**

* @param args

*/

public static void main(String[] args) {

int a[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};

int[] b = new int[a.length];

int j = 0;

for(int i = 0 ; i < a.length ; i++){

if(a[i] != 0){

b[j] = a[i];

j++;

}

}

for(int k = 0 ; k < j ; k++){

System.out.print(b[k] + " ");

}

}

}

第五题:

ArrayList实现

package src;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class StudentList {

/**

* @param args

*/

public String name;

public int age;

public String grade;

public String school;

public static List stuList = null;

public StudentList(String name, int age, String grade, String school) {

super();

this.name = name;

this.age = age;

this.grade = grade;

this.school = school;

}

public static void main(String[] args) {

stuList = new ArrayList();

stuList.add(new StudentList("aaa",13 , "6" ,"tianjin"));

stuList.add(new StudentList("kkk",13 , "6" ,"tianjin"));

stuList.add(new StudentList("ddd",13 , "6" ,"shenzhen"));

stuList.add(new StudentList("ccc",13 , "6" ,"beijing"));

stuList.add(new StudentList("eee",15 , "6" ,"tianjin"));

stuList.add(new StudentList("aaa",13 , "6" ,"tianjin"));

stuList.add(new StudentList("kkk",13 , "6" ,"tianjin"));

stuList.add(new StudentList("ddd",13 , "6" ,"shenzhen"));

stuList.add(new StudentList("ccc",13 , "6" ,"beijing"));

stuList.add(new StudentList("eee",15 , "6" ,"tianjin"));

for(Iterator it = stuList.listIterator() ; it.hasNext(); ){

StudentList stu = (StudentList)it.next();

System.out.println(stu.name + " ," +stu.age + " ," + stu.grade + " ," + stu.school );

}

}

}

数组实现:

package src;

public class StudentArray {

/**

* @param args

*/

public String name;

public int age;

public String grade;

public String school;

public StudentArray(String name, int age, String grade, String school) {

super();

this.name = name;

this.age = age;

this.grade = grade;

this.school = school;

}

public static void main(String[] args) {

StudentArray[] stua = {new StudentArray("aaa" ,13 ,"4" ,"beijing") , new StudentArray("bbb" ,14 ,"4" ,"dalian") ,new StudentArray("ddd" ,13 ,"4" ,"beijing") ,new StudentArray("ccc" ,13 ,"4" ,"tianjin") ,new StudentArray("eee" ,20 ,"8" ,"beijing") ,new StudentArray("fff" ,23 ,"10" ,"beijing") ,new StudentArray("aaa" ,13 ,"4" ,"beijing") ,new StudentArray("aaa" ,13 ,"4" ,"beijing") ,new StudentArray("kkk" ,13 ,"4" ,"beijing") ,new StudentArray("www" ,13 ,"4" ,"beijing") ,new StudentArray("aaa" ,13 ,"4" ,"beijing") };

for(int i = 0 ; i < stua.length ; i++){

System.out.println(stua[i].name + " , " + stua[i].age + " , " +stua[i].grade + " , " +stua[i].school);

}

}

}

第六题:

package job;

public abstract class Job { //这个是父类抽象类,表示职业类

public double baseWage; //基本工资

public Job(double baseWage) {

super();

this.baseWage = baseWage;

}

public double getBaseWage() {

return baseWage;

}

public void setBaseWage(double baseWage) {

this.baseWage = baseWage;

}

public double getYearWage(){ //一年的工资

return baseWage * 12 ;

}

}

package job;

public class Farmer extends Job {

public Farmer(double baseWage) {

super(baseWage);

// TODO 自动生成构造函数存根

}

public double getYearWage() {

// TODO 自动生成方法存根

return super.getYearWage();

}

}

package job;

public class Scientist extends Job {

public String yearendBonus; //年终奖

public Scientist(double baseWage) {

super(baseWage);

//

}

public String getYearendBonus() {

return yearendBonus;

}

public void setYearendBonus(String yearendBonus) {

this.yearendBonus = yearendBonus;

}

public double getYearWage() {

//

return super.getYearWage();

}

}

package job;

public class Teacher extends Job {

public double reward; //每天的课酬

public Teacher(double baseWage) {

super(baseWage);

// TODO 自动生成构造函数存根

}

public double getReward() {

return reward;

}

public void setReward(double reward) {

this.reward = reward;

}

public double getYearWage() {

// TODO 自动生成方法存根

return super.getYearWage();

}

}

package job;

public class Waiter extends Job {

public Waiter(double baseWage) {

super(baseWage);

// TODO 自动生成构造函数存根

}

public double getYearWage() {

// TODO 自动生成方法存根

return super.getYearWage();

}

}

package job;

public class Worker extends Job {

public Worker(double baseWage) {

super(baseWage);

// TODO 自动生成构造函数存根

}

public double getYearWage() {

// TODO 自动生成方法存根

return super.getYearWage();

}

}

package job;

public class Manager { //这是一个管理各种职业工资的类,这是一个含有具体业务的类

/**

* @param args

*/

public static void main(String[] args) {

Teacher tjob = new Teacher(5000); //教师的工资是5000美金一个月

printSalary(tjob);

Scientist sjob = new Scientist(8000);

printSalary(sjob);

Farmer fjob = new Farmer(4000);

printSalary(fjob);

Waiter wjob = new Waiter(3500);

printSalary(wjob);

Worker workjob = new Worker(4500);

printSalary(workjob);

}

public static void printSalary(Job job) {

System.out.println(job.getYearWage());

}

}

第七题:

package src;

public class Writer {

/**

* @param args

*/

public static void main(String[] args) {

int i = 911;

float j = 911.911f;

String str = "hello world";

write(i);

write(j);

write(str);

}

public static void write(int s) {

System.out.print("int: " + s + "\n");

}

public static void write(float s) {

System.out.print("float:" + s + "\n");

}

public static void write(String s) {

System.out.print("String:" + s + "\n");

}

}

好困啊,睡觉了

本回答由提问者推荐

2Q==

c50d6af2748da18e06a2dc6d9597acd0.gif

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用来完成大作业的。文档内容: 1 Java技术体系 1.1 Java语言 1.2 Java平台 1.3 Java应用领域 2 Java语言的技术特点 2.1 1 2.2 2 2.3 3 3 Java语言与C++的异同分析总结。 4 选用C和java语言时编程算法程序有什么不同,有什么优势和劣势。 5 自己编程学习的级别和状态。以及自己以后的编程学习的计划和想法。 6 下面3道题目中选一道,给出算法分析和程序。 1)“黄金分割数”在我们的生活中很常见,但是在不同的应用领域,要求的精度也不一样。 例如:三位小数是0.618 现在我们需要你能求出保留100位小数的黄金分割数,采用的算法为“分层计算法”: 黄金数= 1 --------------- 1+ 1 ------------- 1+ 1 ----------- 1+ 1 --------- ..... 注意,计算出的结果,如果第100位为0也需要保留。 2)已知一个数列: 5,2,4,3,7,6 那么,在这个数列中存在这样一些“连续数”,例如:5,2,4,3这个子数列排序后是连续的。同样2,4,3也是连续的,为了方便表示 我们使用下标来标识,这样,这个数列中存在以下“连续数”: [1,1] [1,4] [1,6] [2,2] [2,4] [3,3] [3,4] [4,4] [5,5] [5,6] [6,6] 这样,他就存在11个“连续数”。现在需要你在用户找出一个数组中所有的“连续数”。 要求: 1、用户输入一个整数N,表示下面数组的个数 2、用户每输入一行作为一个数组 如: 用户输入: 1 5,2,4,3,7,6 程序输出: 11 3)有一种数我们称之为幸运数,它的特点是这样的,首先,由自然数按顺序排列: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 … 这样,1比较特殊, 1为第一个幸运数,那么,我们移除掉序号能被2整除的数(注意:是序号,而不是数本身,每次移除后都重新排序)就剩下: 1 3 5 7 9 11 13 15 17 19… 3为第二个幸运数,那么我们需要去掉序号能被3(下一次是除4,然后是5,每次加1)整除的数,5 11 17...剩下: 1 3 7 9 13 15 19… 那么7为第三个幸运数,后面的幸运数,依此类推,移除之后剩下的数字都是幸运数。 现在我们需要你求出给定的m和n之间的幸运数的个数: 例如:给定1 20,那么个数为:5(5个幸运数分别是1,3,7,13,19) 现在要求用户输入两个数m和n(m<n<=1000*1000),输出幸运数的个数。 例如: 用户输入: 1 20 程序输出: 5 格式:小四,1.5倍行距
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值