1、 选择排序:把第一个数与他后面的数进行比较,如果顺序则继续与后面比较,如果逆序则两数交换位置,继续将第一个数与交换位置后的数进行比较,这样就完成了第一轮排序。同理将第二位与其后的数比较,直到数组有序为止。
最好时间复杂度:O(n) 平均时间复杂度:O(n^2) 最坏时间复杂度: O(n^2)
空间复杂度:O(1)
图解:
Java代码实现:
publicclass SelectOrder{
public void sort(int[] a){
int temp = 0;
for(int i=0;i
for(int j=I;j
if( a[j]
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
for(int i=0;i
System.out.println(a[i]);
}
}
}
2、 冒泡排序:将第一个数与相邻的数进行比较,如果顺序则继续第二个数与后面相邻的书进行比较;如果逆序则交换位置,继