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

 我来答
DoubleSong2011
2011-03-15 · TA获得超过1万个赞
知道大有可为答主
回答量:856
采纳率:0%
帮助的人:708万
展开全部
//选择排序
//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式