急!!用java编程采用选择排序法实现对数组元素由小到大排序。

如题所述

//选择排序
//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
//则将其与第 i位交换,使最大数置于第 i位
public class SelectSort {
public static void main(String[] args) {
int[] a = {25,15,42,16,12,36};
int max = 0;
int tmp = 0;
for(int i=0;i<a.length;i++){
max = i;//
/**查找第 i大的数,直到记下第 i大数的位置***/
for(int j=i+1;j<a.length;j++){
if(a[max]<a[j])
max = j;//记下较大数位置,再次比较,直到最大
}
/***如果第 i大数的位置不在 i,则交换****/
if(i!=max){
tmp = a[i];
a[i] = a[max];
a[max] = tmp;
}
}
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}

你在百度输入“java选择排序法”,就可以找到相应的答案,
望采纳追问

如果我想先从键盘输入,然后再排序,代码应该怎样写?

追答

import java.util.Scanner;

public class Sort {

/**
* @param args
*/
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
System.out.println("请输入你要录入的最大个数");
int count = sc.nextInt();
int[] arr = new int[count];

for(int i=0;iarr[j])
min = j;
}
if(i != min){
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}

我把刚刚那个稍微改了一下,你去看看吧,有分加点分啊

参考资料:http://cn-java.blog.sohu.com/146107024.html

温馨提示:答案为网友推荐,仅供参考
相似回答