时间复杂度和空间复杂度
时间复杂度和空间复杂度是衡量一个算法好坏的两个最重要的依据。
下面将对时间复杂度和空间复杂度进行讲解。
时间复杂度
时间复杂度:是指执行当前算法所需要消耗的时间,我们称为时间复杂度。
空间复杂度
空间复杂度:是指执行当前算法所需要占用的内存空间,我们称为空间复杂度。
十大排序算法
- 冒泡排序
public static int[] sort(int[] arr){
for (int i = 0; i < arr.length; i++) {
for (int j = 1; j < arr.length - i; j++) {
if (arr[j-1] > arr[j]) {
int temp = arr[j];
arr[j] = arr [j-1];
arr[j-1] = temp;
}
}
}
return arr;
}
-
稳定性
稳 定 ( 排 序 后 2 个 相 等 键 值 的 顺 序 和 排 序 之 前 它 们 的 顺 序 相 同 ) 稳定(排序后 2 个相等键值的顺序和排序之前它们的顺序相同) 稳定(排序后2个相等键值的顺序和排序之前它们的顺序相同)
-
排序方式
I n − p l a c e ( I n − p l a c e : 不 占 用 额 外 内 存 ; O u t − p l a c e : 占 用 额 外 内