三种朴素排序算法的java实现
1,冒泡排序:
特性 | 值 |
---|---|
种类 | 比较排序 |
稳定性 | 稳定 |
时间复杂度 | O(n2) |
空间复杂度 | O(1) |
public static void bubbleSort(int[] array) {
for(int i = 0;i < array.length - 1;i ++)
for(int j = 0,temp = 0;j < array.length - 1;j++) {
if(array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
2,插入排序:
特性 | 值 |
---|---|
种类 | 比较排序 |
稳定性 | 稳定 |
时间复杂度 | O(n2) |
空间复杂度 | O(1) |
public static void insertionSort(int[] array) {
for(int i = 1;i < array.length;i++) {
for(int j = i;j > 0 && array[j - 1] > array[j];j--) {
int temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
}
}
}
3,选择排序:
特性 | 值 |
---|---|
种类 | 比较排序 |
稳定性 | 不稳定 |
时间复杂度 | O(n2) |
空间复杂度 | O(1) |
public static void selectionSort(int[] array) {
for(int i = 0;i <= array.length - 2;i ++) {
int temp = 0,index = -1;
int min = array[i];
for(int j = i;j <= array.length - 1;j++) {
if(array[j] < min) {
min = array[j];
index = j;
}
}
if(index != -1) {
temp = array[i];
array[i] = array[index];
array[index] = temp;
}
}
}
4,效率比较
来源:CSDN
作者:Demur
链接:https://blog.csdn.net/leafvein_studio/article/details/103457576