(1)
学号:1501020507张月,1501020515张林,1501020530李畅
地址:https://gitee.com/zyzdd/07ZhangYue_15ZhangLin_30LiChang_KaoHeSan/blob/master/QuickSort.java
(2)学习内容进度条
代码行数(新增/累积) | 博客字数(新增/累积) |
|
重要成长 | ||
目标 | 1500 | 5000 | 150小时 | 精通java语言 | |
第十一周 | 100/100 | 500/500 | 10/10 | 对java进行初步了解 | |
第十二周 | 100/200 | 0/500 | 15/25 | 学习了结构化程序设计 | |
第十三周 | 150/350 | 700/1200 | 15/40 | 学习了面向对象程序结构设计 | |
第十四周 | 150/500 | 0/1200 | 15/55 | 学习了数组和字符串 | |
第十五周 | 250/750 | 1100/2300 | 20/75 | 对之前学习的知识进行练习 |
(3)本次解题思路
我们选择的是快速排序,选择序列的第一个元素作为基准值。比基准值小的都在左边序列,比基准值大的都在右边。
一次循环:从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果没有继续比较下一个,直到找到第一个比基准值小的值才交换。找到这个值之后,又从前往后开始比较,如果有比基准值大的,交换位置,如果没有继续比较下一个,直到找到第一个比基准值大的值才交换。直到从前往后的比较索引>从后往前比较的索引,结束第一次循环,用sort函数来判断左右两端的序列,重复上述的循环。
import java.util.Arrays;
public class chaxun {
public static void main(String[] args)
{
int z[] = { 15,1,2,5,7,15,1,2,5,15,15,1,2,5,30};
chaxun(z);
System.out.println(Arrays.toString(z));
}
public static void sort(int z[], int xiao, int da)
{
int i, j, index;
if (xiao > da)
{
return;
}
y = xiao;
x = da;
index = z[y];
while (y < x)
{
while (y < x && z[x] >= index)
x--;
if (y < x)
z[y++] = z[x];
while (y < x && z[y] < index)
y++;
if (y < x)
z[x--] = z[y];
}
z[y] = index;
sort(z, xiao, i - 1);
sort(z, i + 1, da);
}
public static void chaxun(int z[])
{
sort(z, 0, z.length - 1);
}
}
(4)本次作业运行结果
(5)本次考试总结
结对编程这种编程方式是我之前从来没有接触过的,一开始我对这种方法很抵触,因为我觉得每个人的想法和思路都不一样,这样在做题中很容易起冲突,要解决这样的冲突就需要用时间来磨合,可是考试中并没有这么长的时间,我考试前一直担心的就是我和我搭档会在考试中途吵起来,但是考试中发现这样的方式也很好,出现问题的时候会有人帮你进行排查,这样出现错误的概率就很低,而且你的思路和想法也会因为搭档的帮助而扩宽,在这点上我认为结对编程可以达到1+1>2的效果。
(6)评价搭档
我和李畅,张林一组。李畅和张林他们两个都有很多想法和思路,而且他们很细心,心态都比我好,我是那种如果错误提示出现三次我就想砸键盘的心态,但每次李畅都能让我冷静下来,然后他们两个帮我排查错误,给我提出意见,使程序改正。我们三个的编程的过程感觉还是蛮好的,没有出现我想象的那种状况。