急!!用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

温馨提示:内容为网友见解,仅供参考
无其他回答

(用JAVA语言)编写一个程序用选择法对数组a[]={20,10,50,40,30,70,60...
public static void main(String args[]) { int arr[] = {20,10,50,40,30,70,60,80,90,100};System.out.println("数组由大到小排序前:");for(int num : arr) { System.out.print(num + "、");} \/\/使用冒泡排序法,将数组由大到小进行排序 for(int i = 0;i < arr.length-...

Java 数组元素的排序,输出排序后的序号,从小到大排序,并且要求相同的数 ...
public class BubbleSort { \/ 冒泡排序 param args \/ public static void main(String[] args) { int[] num={51,15,12,84,21,24,0,114,54,123,1,25,4,6};int tmp=0;for(int n=0;n<num.length;n++){ System.out.println(num[n]+"排序前的序号为:"+(n+1));} for(int i=...

java编程问题。用两个for循环来把输入的整数从小到大排序。
数组排序的方法有冒泡和选择比较的好理解:代码如下:package com.tx.wl.p10;public class ArrayDemo { public static void main(String[] args) { int[] a = { 3, 43, 22, 4, 22, 31, 23 };System.out.println("遍历数组:");showArray(a);System.out.println("冒泡排序:");maoPao(...

用java编程,,选择排序问题,菜单包括:升序排序,降序排序.输入n个整数...
import java.util.Scanner;public class Test {public static int cd(){int i ;System.out.println("***");System.out.println("***选择排序***");System.out.println("*** 1 升序***");System.out.println("*** 2 降序***");System.out.println("*** 0 退出***");Sy...

Java通过几种经典的算法来实现数组排序
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。选择排序法是将数组的第一个数据作为最大或者最小的...

java实现几种常见排序算法
1、冒泡排序 特点:效率低,实现简单 思想(从小到大排):每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有元素。这只是冒泡排序的一种,当然也可以从后往前排。2、选择排序 特点:效率低,容易实现。思想:每一趟从待排序序列选择一个最小的元素放到已排好...

java怎么让数组的数字从大到小排序?
将数字从大到小排序的方法:例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较,以次类推。示例代码如下: public class Test { public static void main(String[] args) { ...

Java:运用选择排序法,将十个数存入数组a中,通过输入对话框任意输入十个...
;int count = 0;while(count < 10){System.out.print("输入第【" + (count + 1) + "】个数:");a[count] = scanner.nextInt();count++;}System.out.print("\\n排序之前:");for(int i = 0; i < a.length; i++){System.out.print(a[i] + " ");}\/\/选择排序for (...

java 比较数组中数值大小
自己写的话,可以用冒泡或者选择排序:都是从大到小的 冒泡:int[] arr=new int[]{34,5,23,38,1,89,54,78,9,7};int temp=0;for(int i=arr.length-1;i>0;i--){ for(int j=arr.length-1;j>0;j--){ if(arr[j]>arr[j-1]){ temp=arr[j];arr[j]=arr[j-1];arr[j-...

求解JAVA编程题:编写一个程序选择法对数组a[]={20,10,50,40,30,70,6...
选择排序。param ints 要排序的数组。return 返回排序后的数组。如果数组为空或数组长度小于等于1,则直接返回传入的数组对象。\/ public static int[] choose(final int[] ints){ if (ints == null){\/\/ 如果数组为空,不进行排序操作。return ints;} int count = ints.length;\/\/ 数组的长度...

相似回答