今天,巩固教大家数组排序方法,我将介绍以下这几种方式:快速排序,冒泡排序,选择排序。
1、快速排序
这就是各位学Java的福利了,Java提供sort()方法,咱们只要调用就行了。
代码如下:
//引入包
public class 排序 {
public static void main(String[] args) {
//建立一维数组
//进行排序
for(int i=0;i
}
}
}
这段代码我相信应该很好理解,我在这就不多说了。
2、冒泡排序
这是一个很常用的方法,它的运行原理是:把每两个数放在一起比较,并把小的数放在前面。
public class 排序 {
public static void main(String[] args) {
//建立一维数组
//排序开始
for(int i=0;i
//判断后一个数是否大于前一个数
if(a[i+1]
//将前一个数的值给q
int q=a[i];
//将后一个数的值给前一个数
a[i]=a[i+1];
//将q(即前一个数的值)给后一个数
a[i+1]=q;
}
}
for(int i=0;i
}
}
}
如果你的代码是这样的,那很抱歉地告诉你,这是错的!
8 7 6 5 4 3 2 1 10
思考一下为什么?
其实很简单,我们的原数组是:10,9,8,7,6,5,4,3,2,1
它先将10与9比较,于是得到:9,10,8,7,6,5,4,3,2,1
再将10与8比较:9,8,10,7,6,5,4,3,2,1
于是最后:9,8,7,6,5,4,3,2,1,10
那我们的怎么做呢?
正确代码:
public class 排序 {
public static void main(String[] args) {
//建立一维数组
//排序开始
for(int j=0;j
for(int i=0;i
//判断后一个数是否大于前一个数
if(a[i+1]
//将前一个数的值给q
int q=a[i];
//将后一个数的值给前一个数
a[i]=a[i+1];
//将q(即前一个数的值)给后一个数
a[i+1]=q;
}
}
}
for(int i=0;i
}
}
}
我又在外面套一个循环,让它运行十次,这样就可以了。它会把前面大的数一个一个往后移,最后完成!
3、选择排序
所谓选择排序,就是依次将每位上的数与后面的所有数做对比,并把比它小的数的下标记录下来,最后替换。
代码如下:
public class 数组排序 {
public static void main(String[] args) {
//初始化一维数组
int [] a={10,9,8,7,6,5,4,3,2,1};
//开始排序
//这个for是用来选择要与后面数比较的数
for(int j=0;j
//将当前比较数的下标给z
int z=j;
//开始比较
for(int i=j+1;i
if(a[i]
//更换下标
z=i;
}
}
//判断z的值是否更换
if(z!=j){
//替换数值
int q=a[j];
a[j]=a[z];
a[z]=q;
}
}
//遍历
for(int i=0;i
");
}
}
}
好了,这三种排序方法我都讲完了,如果有什么不理解的地方,可以加我的Q:1979661141
标签:10,Java,int,一个,数组,排序,public From: https://blog.51cto.com/u_9368800/5890561