經典基礎排序之直接排序,選擇排序,氣泡排序.
直接排序:
Collection.sort(lista,new Comparator<Person>() { });
Arrays.sort(arraya,new Comparator<Integer>() { });)
選擇排序:
--陣列
public static void main(String[] args) {
int arr[]={23,12,46,24,87,65,18,14,43,434,65,76};
//int arr[]={23,12,46,24,76};
//選擇排序
int l=0;
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length-1;j++){
if(arr[i]<arr[j]){
int t=arr[i];
arr[i]=arr[j];
arr[j]=t;
l++;
}
System.out.print("i="+i+"的第j="+j+"次交換\t");
for(int d=0;d<arr.length;d++){
System.out.print(arr[d]+"\t");
}
System.out.println();
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
System.out.println("交換的次數為"+l);
}
氣泡排序:
--集合
public List<Students> demo(){
List<Students> list = new ArrayList<Students>();
for (int i = 0; i < list .size(); i++) {
for (int j = list .size()-1; j > i; j--) {
String no= list .get(j).getStudentNo();
String no_1= list .get(j-1).getStudentNo();
if (no.compareTo(no_1)>0) {
//互換位置
Student stu = list.get(j);
list.set(j, list.get(j-1));
list.set(j-1, stu );
}
}
}
return list
--陣列
public static void test1(Integer[] arr){
int len =arr.length;
int temp;
for(int j=0;j<len-1;j++){
for(int i=0;i<len-1;i++){
if(arr[i]>arr[i+1]){
temp = arr[i];
arr[i] =arr[i+1];
arr[i+1] = temp;
}
}
System.out.println(Arrays.toString(arr));
}
}