排序
冒泡排序
public class BubbleSort {
public static void bubbleSort1(int[] a, int n) {
int i, j;
for (i = n - 1; i > 0; i--) {
// 将a[0...i]中最大的数据放在末尾
for (j = 0; j < i; j++) {
if (a[j] > a[j + 1]) {
// 交换a[j]和a[j+1]
int tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
}
选择排序
public class ChooseSort {
private int[]array;
private Object length;
private ChooseSort(int[]array){
this.array=array;
this.length=array.length;
}
public void display(){
for(int i:array){
System.out.print(i+"");
}
System.out.println();
}
public void chooseSort(){
int length = 0;
for(int i = 0; i<length-1; i++){
int minIndex = i;
for(int j=minIndex+1;j<length;j++){
if(array[j]<array[minIndex]){
minIndex = j;
}
}
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
}
}
public static void main(String[] args){
int[] array={100,45,36,21,17,13,7};
ChooseSort cs = new ChooseSort(array);
System.out.println("排序前的数据为:");
cs.display();
cs.chooseSort();
System.out.println("排序后的数据为:");
cs.display();
}
}
二维排序
import java.util.Arrays;
import java.util.Comparator;
public class ClassSort {
public static int[][] mySort(int[][] array){
// 新建一个比较器Comparator作为匿名内部类
Arrays.sort(array, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if(o1[0] == o2[0]){
// 若俩数组的第一个元素相等,则比较它们的第二个元素
return o1[1] - o2[1];
}else {
// 若俩数组的第一个元素不相等,则按从小到大的顺序排列
return o1[0] - o2[0];
}
}
});
return array;
}
public static void main(String[] args){
// 输入测试数据
int[][] arr = new int[][]{{1,3},{2,4}, {2,6},{8,10},{8,18}, {15,18}};
int[][] sorted = mySort(arr);
// 输出测试结果
for(int[] a : sorted){
System.out.println(a[0] + "," + a[1]);
}
}
}

浙公网安备 33010602011771号