随笔分类 - 数据结构和算法
摘要:思路分析: 归并排序是建立在归并操作的基础上,同样也是利用了分治法来进行解答. 作为一种典型的分而治之思想的算法应用, 归并排序实现两种方法: 自上而下的递归 自下而上的迭代(所有递归都可以使用迭代重写) 首先申请空间, 设定两个指针,位于两个排序好的序列的初始位置, 比较两个序列的值然后放入最终序
阅读全文
摘要:思路分析: 快速排序是实现应用中非常常用的一种算法, 时间复杂度为O(nlongn). 快速排序利用分治法, 随机选取一个point值, 然后把小于point的放在左边, 把大于point的放在右边, 经过这样一次操作, 左边都小于point, 右边都大于point. 然后分别对point左边和右边
阅读全文
摘要:思路分析: 插入排序是默认第一个元素为最小值(或最大值), 然后将后面的数依次与前面进行比较, 如果小于就交换位置 代码: public class Insert { public void Sort(int[] arrays){ for(int i = 1; i < arrays.length;
阅读全文
摘要:思路分析: 每次从数组中选出最大或最小的的,放在首位或末尾,使用下标pos进行记录,循环结束得到最终的pos,那么在进行交换 注意pos的设置和参数条件的设置 代码: public class Selection { public static void main(String[] args) {
阅读全文
摘要:思路分析: 两两交换,把最大的值依次放在最后,实现排序,使用两层循环 易错点是两层的循环的条件错误,第一层循环是需要循环的次数,比如长度为5,那么需要4次循环,第二层是需要交换的次数 代码: public class Bubble { public void Sort(int[] arrays){
阅读全文

浙公网安备 33010602011771号