第三次作业

(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)本次作业运行结果

第三次作业_第1张图片

(5)本次考试总结

    结对编程这种编程方式是我之前从来没有接触过的,一开始我对这种方法很抵触,因为我觉得每个人的想法和思路都不一样,这样在做题中很容易起冲突,要解决这样的冲突就需要用时间来磨合,可是考试中并没有这么长的时间,我考试前一直担心的就是我和我搭档会在考试中途吵起来,但是考试中发现这样的方式也很好,出现问题的时候会有人帮你进行排查,这样出现错误的概率就很低,而且你的思路和想法也会因为搭档的帮助而扩宽,在这点上我认为结对编程可以达到1+1>2的效果。

(6)评价搭档

    我和李畅,张林一组。李畅和张林他们两个都有很多想法和思路,而且他们很细心,心态都比我好,我是那种如果错误提示出现三次我就想砸键盘的心态,但每次李畅都能让我冷静下来,然后他们两个帮我排查错误,给我提出意见,使程序改正。我们三个的编程的过程感觉还是蛮好的,没有出现我想象的那种状况。

 

转载于:https://www.cnblogs.com/zyzdd/p/7944178.html

你可能感兴趣的:(第三次作业)