第三次作业

本次作业两名同学的学号,本次作业GIT的提交地址:

1501020510石磊,1501020529裴龙 

https://gitee.com/peiduoduo/kaohe2.git

一、个人学习进度条

 

代码行数(新增/累计)

博客字数(新增/累计)

学习时间(新增/累计)

重要成长

目标

1500行

7000字

120小时

了解JAVA程序设计

第十一周

120/120

600/600

13/15

学习结构化设计FOR,WHILE,IF-ELSE语句。

第十二周

100/210

1100/1700

15/27

面向对象程序设计类,域,方法,实例对象,继承性,多态性

第十三周

120/320

2000/3500

13/40

变量作用域范围以及修饰词。

第十四周

250/300

1500/4800

22/60

字符串和数组的应用

 

 

二:代码部分和解题思路:

  • 从序列中挑出一个元素,作为"基准"(pivot).

  • 把所有比基准值小的元素放在基准前面,所有比基准值大的元素放在基准的后面(相同的数可以到任一边),这个称为分区(partition)操作。

  • 对每个分区递归地进行步骤以上两步,递归的结束条件是序列的大小是0或1,这时整体已经被排好序了。

以下是具体代码及详细注释:

public class tiyi{

  static void swap(int a[], int i, int j){ //定义交换两个数的方法 swap

    int temp;
    temp = a[i];
    a[i] = a[j];
    a[j] = temp;
  }


  static int huaFen(int a[], int left, int right){ //定义分区方法,参数列表是数组a,整型left表示数组的上限,整型right表示数组的下限 

    int pivot = a[right];//声明分区基准pivot 
    int tail = left - 1;//声明tail为小于基准的子数组最后一个元素的索引

    for (int i=left; i
      if (a[i] <= pivot){ 

        swap(a, ++tail, i);//把小于等于基准的元素放到前一个子数组末尾
      }
    }
    swap(a, tail+1, right); //最后把基准放到前一个子数组的后边,剩下的子数组既是大于基准的子数组
    return tail + 1;//返回基准值

   }


  /***此方法用来多次递归调用本身,对每一次大于或小于基准的分区,进行再分区,直至最后一个数,排序结束**/
    static void quickSort(int a[], int left, int right){//定义递归方法

      if (left >= right)
        return;//递归结束条件
      int pivotIndex = huaFen(a, left, right);//此处为每次分区基准的索引
      quickSort(a, left, pivotIndex - 1);//递归调用自己,实参为数组,数组下限,基准索引值减一
      quickSort(a, pivotIndex+1, right);//递归调用,实参为索引,基准索引值加一,数组上限
}


    public static void main (String args[]){

      int a[] = {1,2,5,10,15,29};//声明数组
      int length = a.length-1;//将数组最大的索引赋值给length,作为数组基准
      quickSort(a, 0, length);

      for (int i=0; i        System.out.print(" " + a[i]); 
  }
}

三 运行结果截图:

第三次作业_第1张图片

对本次考试总结

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

四 评价搭档

这次团队合作我和石磊一组。她非常的细心,有耐心,不着急,每次我代码卡住出错的时候,都提示我不要着急,慢慢来。通过努力,我们顺利的完成了这次结队编程。

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