第三次作业

 

  代码行数(新增/累积) 博客字数(新增/累积) 学习时间(新增/累积) 重要成长
目标 500   100小时 初步了解Java
第十一周 30/30 0/0 20/20 进一步学习java
第十二周 30/60 0/0 18/38 加深学习java
第十三周 20/80 100/100 22/60 练习java
第十四周  160/240  0/100  20/80 熟能生巧Java错 
第十五周 100/260  50/150 20/100 向老师一样厉害的掌握java 


1. 本次作业2名同学的学号,本次作业GIT的提交地址

1501020519 罗帅

1501020518 高景娟

git提交地址:https://gitee.com/XiaoKeBaJiangLiuEr/18-19-LuoShuai-GaoJingJuan.git

2.解题思路

第一道题:

给定一组数列,使用快速排序的方法将数列按照由小到大的顺序对数组进行排序。数列为两名同学的学号相联,两个数为一组,如果遇到以0开头,则省略不写。如1501020551李四-1501020550张三,则序数列为{15,1,2,5,51,15,1,2,5,50}。

输出格式:

输出排序后的数列,以空格分隔。
输出样例:1 1 2 2 5 5 15 15 50 51
思路:
题目要求根据快速排序的方法将数列按照从小到大的顺序排序,快速排序这个方法就是首先任意选取一个数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,然后可以将数据分成两个部分,然后再将两个部分再进行快速排序
知识点:
定义一维数组
定义while循环和if条件分支语句

 

复制代码
public class q {

public static void sort(int a[], int x, int y) { //定义一个有两个字符串缓冲区的整形字符串a,低位缓冲区是x,高位缓冲区是y
int i, j, z;  
if (x > y) {  
return;
}
i = x;
j = y;
z = a[i]; // 用子表的第一个记录做基准
while (i < j) { //从表的两端交替向中间扫描
while (i < j && a[j] >= z)
j--;
if (i < j)
a[i++] = a[j]; //用比基准小的记录替换低位记录
while (i < j && a[i] < z)              
i++;
if (i < j)
a[j--] = a[i]; // 用比基准大的记录替换高位记录
}
a[i] = z; // 将基准数值替换回 a[i]
sort(a, x, i - 1); // 对高位缓冲区排序
sort(a, i + 1, y); // 对低位缓冲区排序
}

public static void quicksort(int a[]) { //定义一个方法用来给出字符串a
       sort(a, 0, a.length - 1);
}

public static void main(String[] args) {

int a[] = { 15,1,2,5,18,15,1,2,5,19 };
quicksort(a);
for(int c=0;c<a.length; c++) //遍历然后按要求输出
{
System.out.print(a[c] + " ");
}
}
}


3:结果截图

 第三次作业

 

4:结伴感受

我觉得对于java这一门语言来说,在做这个作业的时候,两个人一起做比一个人做好了太多,每个人都有一个不同的思路,最后两个人的思路在一起结合,感觉非常的完美,因为每个人的想法就是不一样的,有时候会因为一个难题就会不得其解,两个人就会多了一点思路,解决问题会变得更加简单,在我看来两个臭皮匠就抵一个诸葛亮了。

跟我一起结伴的是高景娟,她的思维能力和检查错误能力非常的强,遇到难题地时候她也特别的细心,特别的开朗去对待每一个难题,这样的伙伴简直好的不得了!