摘要:
快速排序原理是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位... 阅读全文
摘要:
循序搜索法 就是一个一个去比较,找到时返回;二元搜索法 二元搜索算法是在排好序的数组中找到特定的元素. 首先, 比较数组中间的元素,如果相同,则返回此元素的指针,表示找到了. 如果不相同, 此函数就会继续搜索其中大小相符的一半,然后继续下去. 如果剩下的数组长度为0, 则表示找不到,那么函数... 阅读全文
摘要:
归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序... 阅读全文
摘要:
栈和队列的区别:
1.队列先进先出,栈先进后出。
2. 对插入和删除操作的"限定"。
3.遍历数据速度不同。 阅读全文
摘要:
Shell排序算法的时间复杂度分析比较复杂,实际所需的时间取决于各次排序时增量的个数和增量的取值。研究证明,若增量的取值比较合理,Shell排序算法的时间复杂度约为O(n(ldn)2)。由于Shell排序算法是按增量分组进行的排序,所以Shell排序算法是一种不稳定的排序算法。 阅读全文
摘要:
双向起泡排序是冒泡排序的升级版,双向起泡排序连够在一次循环中同时取得最大值与最小值,所以用双向冒泡排序的交换的次数减少了,从而达到了优化起泡法的作用。 阅读全文
摘要:
该方法的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。 阅读全文
摘要:
贪心算法的基本思路1.建立数学模型来描述问题。 2.把求解的问题分成若干个子问题。 3.对每一子问题求解,得到子问题的局部最优解。 4.把子问题的解局部最优解合成原来解问题的一个解。 实现该算法的过程: 从问题的某一初始解出发; while 能朝给定总目标前进一步 do 求出可行解的一... 阅读全文
摘要:
所谓懒加载(lazy)就是延时加载,延迟加载。什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载。至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适,因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,我们让数据在需要的时候才进行加载,这时我们就用到了懒加载。懒加载... 阅读全文
摘要:
简易的ATM 操作 阅读全文
摘要:
冒泡排序算法原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子例子为从小到大排序,代买仅供参考: 1 package com.zc.manythread; 2 ... 阅读全文