1.之前写过插入排序,排序方法是从第二个开始与之前的数进行比较,不用依次比较,最好时间为O(n),最坏时间是O(n2),而选择排序的方法是从第一个开始和后面的数字依次比较,最好最坏时间都为O(n2).
2.选择排序的案例
package day03;
public class ChooseSort {
public static void main(String[] args) {
int[] arr={4,2,1,3,7};
int temp;
for(int i=0;i<arr.length;i++){//从第一个 开始循环arr.length-1次
for(int j=i+1;j<arr.length;j++){//依次与后面的所有元素进行比较
if(arr[i]>arr[j]){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for(int k=0;k<arr.length;k++){
System.out.print(arr[k]+" ");
}
}
}
3.冒泡排序时相邻两个元素进行比较,最好的时间复杂度为O(n),最坏为O(n2)
package day03;
public class BubbleSort {
public static void main(String[] args) {
int[] arr={4,2,1,3,7};
int temp;
for(int i=0;i<arr.length;i++){//总共循环arr.length-1次
for(int j=0;j<arr.length-i-1;j++){//依次两个相互比较
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int k=0;k<arr.length;k++){
System.out.print(arr[k]+" ");
}
}
}