可以实现比较器Comparator来定制排序方案,同时使用Colletions.sort的方式进行排序,代码如下:
public void sortDesc(List<Long>s){
Collections.sort(s, new Comparator<Long>() {
public int compare(Long o1, Long o2) {
Long result = o2 - o1
return result.intValue()
}
})
s.forEach(item->{
System.out.print(item +" ")
})
}
同时常用的比较排序算法主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。
java的冒泡排序实现如下:
public static void bubbleSort(int []arr) { for(int i =0i<arr.length-1i++) { for(int j=0j<arr.length-i-1j++) {//-1为了防止溢出 if(arr[j]>arr[j+1]) { int temp = arr[j] arr[j]=arr[j+1] arr[j+1]=temp } } } }还有非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等。
实现思路:实际上就是先输入三个数,之后分别和另外两个数比较,之后从大到小进行数值替换,之后分别输出即可。import javax.swing.JOptionPane
public class Arrange{
public static void main (String args[]){
String str
int x,y,z
int temp
str=JOptionPane.showInputDialog("请输入第一个数")
x=Integer.parseInt (str)
str=JOptionPane.showInputDialog("请输入第二个数")
y=Integer.parseInt (str)
str=JOptionPane.showInputDialog("请输入第三个数")
z=Integer.parseInt (str)
if(x>y) {
temp = y
y = x
x = temp
}
if(y>z){
temp = y
y = z
z = temp
}
if(x>y){
temp = y
y = x
x = temp
}
System.out.println("从大到小排列="+z+" "+y+" "+x)
}
}