用冒泡排序,对三个数字按照由小到大进行排序。以23、11、17为例,代码如下:
import java.util.Scanner
public class woo {
static int[] bubbleSort(int[] date) {
boolean isSwap
for(int j = 1j <date.lengthj++) {
isSwap = false
for(int i = 0i <date.length - ji++) {
if(date[i] >date[i+1]) {
date[i] = date[i] ^ date[i+1]
date[i+1] = date[i] ^ date[i+1]
date[i] = date[i] ^ date[i+1]
isSwap = true
}
}
if(isSwap == false)
break
}
return date
}
public static void main(String args[]) {
int date[] = new int[3]
System.out.println("输入三个整数:")
Scanner num = new Scanner(System.in)
for(int i = 0i <date.lengthi++)
date[i] = num.nextInt()
date = bubbleSort(date)
for(int count = 0count <date.lengthcount++)
System.out.print(date[count] +"\t")
System.out.println("")
}
}
扩展资料:
通常排序算法,可以分为两大类。
非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。包括交换排序、插入排序、选择排序、归并排序。
线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。包括计数排序、桶排序、计数排序。
参考资料:冒泡法排序——百度百科
可以用Comparator进行比较,下面是代码示例
//AbsComparator.javaimport java.util.*
public class AbsComparator implements Comparator {
public int compare(Object o1, Object o2) {
int v1 = Math.abs(((Integer)o1).intValue())
int v2 = Math.abs(((Integer)o2).intValue())
return v1 > v2 ? 1 : (v1 == v2 ? 0 : -1)
}
}
//Test.java
import java.util.*
public class Test {
public static void main(String[] args) {
//产生一个20个随机整数的数组(有正有负)
Random rnd = new Random()
Integer[] integers = new Integer[20]
for(int i = 0 i < integers.length i++)
integers[i] = new Integer(rnd.nextInt(100) * (rnd.nextBoolean() ? 1 : -1))
System.out.println("用Integer内置方法排序:")
Arrays.sort(integers)
System.out.println(Arrays.asList(integers))
System.out.println("用AbsComparator排序:")
Arrays.sort(integers, new AbsComparator())
System.out.println(Arrays.asList(integers))
}
}