您的位置:首页 > 其它

选择排序法

2016-04-08 23:36 337 查看
选择排序法:

/*
* 数组排序之选择排序:
* 从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处
*/
public
class
ArrayDemo {
public
static void
main(String[]
args) {
// 定义一个数组
int[]
arr = { 24, 69, 80, 57, 13};
System.out.println("排序前:");
printArray(arr);

/*
//第一次
intx = 0;
for(int y = x + 1; y < arr.length; y++) {
if(arr[y] < arr[x]) {
inttemp = arr[x];
arr[x]= arr[y];
arr[y]= temp;
}
}
System.out.println("第一次比较后:");
printArray(arr);

//第二次
x= 1;
for(int y = x + 1; y < arr.length; y++) {
if(arr[y] < arr[x]) {
inttemp = arr[x];
arr[x]= arr[y];
arr[y]= temp;
}
}
System.out.println("第二次比较后:");
printArray(arr);

//第三次
x= 2;
for(int y = x + 1; y < arr.length; y++) {
if(arr[y] < arr[x]) {
inttemp = arr[x];
arr[x]= arr[y];
arr[y]= temp;
}
}
System.out.println("第三次比较后:");
printArray(arr);

//第四次
x= 3;
for(int y = x + 1; y < arr.length; y++) {
if(arr[y] < arr[x]) {
inttemp = arr[x];
arr[x]= arr[y];
arr[y]= temp;
}
}
System.out.println("第四次比较后:");
printArray(arr);
*/

/*
//通过观察发现代码的重复度太高,所以用循环改进
for(intx=0; x<arr.length-1; x++){
for(inty=x+1; y<arr.length; y++){
if(arr[y]<arr[x]){
inttemp =
arr
[x];
arr[x]=
arr
[y];
arr[y] =
temp
;
}
}
}
System.out.println("排序后:");
printArray(arr);
*/

//用方法改进
selectSort(arr);
System.out.println("排序后:");
printArray(arr);

}

public
static void
selectSort(int[]
arr){
for(int
x=0; x<arr.length-1;
x++){
for(int
y=x+1;y<arr.length;
y++){
if(arr[y]
<arr[x]){
int
temp = arr[x];
arr[x] =
arr[y];
arr[y] =
temp;
}
}
}
}

// 遍历功能
public
static void
printArray(int[]
arr) {
System.out.print("[");
for (int
x = 0; x <
arr.length;
x++) {
if (x ==
arr.length - 1) {
System.out.print(arr[x]);
}else{
System.out.print(arr[x] +
", ");
}
}
System.out.println("]");
}
}
运行结果:

排序前:
[24,69, 80, 57, 13]
排序后:
[13,24, 57, 69, 80]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: