第三次作业
1.个人学习进度
|
代码行数(新增/累计) |
博客字数(新增/累计) |
学习时间(新增/累计) |
重要成长 |
目标 |
1300行 |
8000字 |
130小时 |
了解JAVA程序设计 |
第十一周 |
200/200 |
600/600 |
10/10 |
学习标识符以及关键字和运算符,基本数据类型。 |
第十二周 |
200/400 |
800/1400 |
10/20 |
面向对象程序设计类,域,方法,实例对象,继承性,多态性 |
第十三周 |
100/500 |
2000/3400 |
15/35 |
变量作用域范围以及修饰词。 |
第十四周 |
50/550 |
500/3900 |
15/50 |
学会使用了数组和字符串
|
二、解题思路
大致思路是取pivot为标准,比它小的放在左侧,比它大的放在右侧。
三.代码部分
public class kaohesan{ static void swap(int a[],int i,int j){ 定义swap是交换方法 int temp; temp=a[i]; a[i]=a[j]; a[j]=temp; } static int kaohesan(int a[],int left,int right){ int pivot=a[right]; 声明分区标准pivot int tail=left - 1; for (int i=left;i<right;i++){ 遍历出pivot外的所有元素 if (a[i]<=pivot){ swap(a,++tail,i); 小于其的元素放在前一个字数组末尾 } } swap(a,tail+1,right); 把pivot放在所有小于它的元素的右侧 return tail + 1; 返回tail值 } static void quickSort(int a[],int left,int right){ 定义一个无返回值的递归方法 if (left>=right) return; int pivotIndex=kaohesan(a,left,right); quickSort(a,left,pivotIndex - 1); 基准索引值减一,数组是实参 quickSort(a,pivotIndex+1,right); 基准索引值加一,索引是实参 } public static void main(String args[]){ int a[]={15,1,2,5,8,15,1,2,5,38}; 声明数组 int length=a.length-1; quickSort(a,0,length); for (int i=0; i<a.length; i++){ 遍历数组 System.out.print(" " + a[i]); } } }
四、截图部分
五、感受
通过这次结对编程合作,两个人把各自对代码的理解和字符串数组的应用结合在一起,
各取所长,用了大概一个小时的时间完成了整个程序,所谓快速排序就是从后往前比较
,用基准值和最后一个值比较,如果比基准值小的交换位置,如果没有继续比较下一个,
直到找到第一个比基准值小的值才交换。找到这个值之后,又从前往后开始比较,如果
有比基准值大的,交换位置,如果没有继续比较下一个,直到找到第一个比基准值大的
值才交换。直到从前往后的比较索引>从后往前比较的索引,结束第一次循环,此时,对
于基准值来说,左右两边就是有序的了。
六、对队友的评价
我的队友逻辑能力较清晰,能听进去他人的建议,但是我们两个基础能力很弱,欠缺练
习,所以这次考试很吃力,通过这次考试我知道了平时要多注意练习,按时完成老师留得
课业任务。