算法作为编程中重要的一部分,今天来回顾一下Java中最常见的算法。
1.冒泡排序
冒泡排序算法的原理是采用相邻的2个元素比较大小,比如从第一个元素开始,和其相邻的第二个元素比较,以升序为例,如果第一个元素比相邻的第二个元素大,则它们交换位置,以此类推。
冒泡排序算法具体实现:
打印结果如下:
2.快速排序
基于分治的思想,是冒泡排序的改进型。首先在数组中选择一个基准点(该基准点的选取可能影响快速排序的效率,后面讲解选取的方法),然后分别从数组的两端扫描数组,设两个指示标志(lo指向起始位置,hi指向末尾),首先从后半部分开始,如果发现有元素比该基准点的值小,就交换lo和hi位置的值,然后从前半部分开始扫秒,发现有元素大于基准点的值,就交换lo和hi位置的值,如此往复循环,直到lo>=hi,然后把基准点的值放到hi这个位置。一次排序就完成了。以后采用递归的方式分别对前半部分和后半部分排序,当前半部分和后半部分均有序时该数组就自然有序了。
代码实现如下:
打印结果如下: