关于算法的笔记应该三年前就开始总结,哎,拖到现在。最近在公司上班闲着无聊,开始重新看算法中的各种排序,发现三年前不能领悟的东西,现在慢慢地开始有些懂了。为了应付以后的各种面试,准备对比较常用的一些排序做一些傻瓜式的整理。
排序的关键字:
1. 时间复杂度:整个排序算法运行所需要的时间。
2. 空间复杂度:排序算法运行过程中所需额外空间。
3. 稳定性:若待排序的序列中有大小相同的两个数,若整个排序过程中不存在两数次序交换的可能性,则该排序算法是稳定的。
4. In-place:算法使用的额外存储空间是常数级的。
由‘简’入‘难’,第一篇介绍最基本的冒泡排序-Bubble Sort
附使用到的函数:
排序的关键字:
1. 时间复杂度:整个排序算法运行所需要的时间。
2. 空间复杂度:排序算法运行过程中所需额外空间。
3. 稳定性:若待排序的序列中有大小相同的两个数,若整个排序过程中不存在两数次序交换的可能性,则该排序算法是稳定的。
4. In-place:算法使用的额外存储空间是常数级的。
由‘简’入‘难’,第一篇介绍最基本的冒泡排序-Bubble Sort
附使用到的函数:
public void swap(int[] data, int i, int j){
if(i!=j){
data[i] = data[i]+data[j];
data[j] = data[i]-data[j];
data[i] = data[i]-data[j];
}
}