常数时间的操作: 一个操作和样本的数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。
选择排序,插入排序, 冒泡排序,时间复杂度O(n^2) , 额外空间复杂度O(1)
选择排序
public void selectSort(int[] array) {
int temp = 0;
if(array == null || array.length < 2) {
return;
}
for(int i = 0; i < array.length - 1; i++) {
for(int j = i+1; j < array.length; j++) {
if(array[i] > array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return;
}
插入排序
public void insertSort(int[] array) {
if(array == null || array.length < 2 ) {
return;
}
int key = 0;
for(int i = 1; i < array.length; i++) {
key = array[i];
int j = i-1;
while(j >=0 && array[j] > key) {
array[j+1] = array[j];
j--;
}
array[j+1] = key;
}
}
冒泡排序
public void bubbleSort(int[] array) {
if(array == null || array.length < 2) {
return;
}
int temp = 0;
for(int i=0; i< array.length-1; i++) {
for(int j=i+1; j < array.length; j++) {
if(array[i] > array[j]) {
temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
}
}
网友评论