第三次作业
Posted 杰瑞汤姆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三次作业相关的知识,希望对你有一定的参考价值。
1.
代码行数(新增/累计) | 博客字数(新增/累计) | 学习时间(新增/累计) | 重要成长 | |
目标 | 2000行 | 10000字 | 200小时 | 了解JAVA程序设计 |
第十一周 | 100/100 | 800/800 | 15/15 | 学习结构化设计FOR,WHILE,IF-ELSE语句 |
第十二周 | 100/200 | 1000/1800 | 15/30 | 面向对象程序设计类,域,方法,实例对象 |
第十三周 | 100/300 | 2000/3800 | 15/45 | 变量作用域范围 |
第十四周 | ...... | ......... | ........ | ......... |
2.
本次作业2名同学的学号,本次作业GIT的提交地址
1501020519 罗帅
1501020518 高景娟
git提交地址:https://gitee.com/XiaoKeBaJiangLiuEr/18-19-LuoShuai-GaoJingJuan.git
3.
解题思路:
第一道题:
给定一组数列,使用快速排序的方法将数列按照由小到大的顺序对数组进行排序。数列为两名同学的学号相联,两个数为一组,如果遇到以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条件分支语句
4.
代码:
public
class
qwe
{
static
void
asd(
int
a[],
int
i,
int
j)
{
int
temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
static
int
qwe(
int
a[],
int
left,
int
right)
{
int
pivot=a[right];
int
tail=left -
1
;
for
(
int
i=left;i<right;i++)
{
if
(a[i]<=pivot)
{
asd(a,++tail,i);
}
asd(a,tail+
1
,right);
return
tail +
1
;
}
static
void
quickSort(
int
a[],
int
left,
int
right)
{
if
(left>=right)
return
;
int
pivotIndex=qwe(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
,
21
,
15
,
1
,
2
,
5
,
22
};
int
length=a.length-
1
;
quickSort(a,
0
,length);
for
(
int
i=
0
; i<a.length; i++)
{
System.out.print(
" "
+ a[i]);
}
}
}
以上是关于第三次作业的主要内容,如果未能解决你的问题,请参考以下文章