- 博客(14)
- 收藏
- 关注
原创 线程状态转换及基本操作
1. 新建线程的方式继承Thread类,重写run()方法继承runnable接口;继承callable接口。2. 线程的状态转换3. 线程状态转换的基本操作
2018-05-15 22:31:12
524
原创 并发编程的优缺点
1. 为什么要并发编程及优点提高cpu利用率;业务拆分,提升应用性能。2. 并发编程缺点频繁地上下文切换(context)比较耗时;线程安全问题(如死锁)。3. 易混淆的概念同步 vs 异步(是否等待等待调用的方法返回后再往后执行)并发 vs 并行(多个任务交替进行 vs 真正的同时进行)阻塞 vs 非阻塞(是否资源被占有,导致线程等待和挂起)临界区(被多线程共享的资源或数据)参考链接:http...
2018-05-14 22:54:50
731
转载 我是一个线程(对理解多线程很有帮助)
转载自优快云博客:log.youkuaiyun.com/tomcat_2014/article/details/51069096第一回 初生牛犊我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马
2016-09-29 20:50:25
366
原创 单向链表的创建和操作
public class SinglyLinkedListDemo {/*** MethodName:main * Description: * @param args * Return:void * @author Sunny* @date 2016-9-27下午9:30:39 */public static void main(String[] a
2016-09-29 12:24:42
517
原创 常用排序算法之归并排序
归并排序,核心为数组分解和合并的过程。将数组逐渐分解,直到两个两个元素为一组,待小组排序完成后,再将两个两个小组合并为一个一个有序的大组……最后得到排序后的原始数组。 代码实现: public class MergingSort {/*** MethodName:main * Description:常用排序算法之归并排序 * @para
2016-09-28 20:51:33
285
原创 常用排序算法之快速排序
快速排序,采用分治策略,将数组A[n]分组进行递归快速排序。 步骤:以A[0]为基准元素,将数组中比其小的元素放在其左边,比其大的放在其右边;将基准元素左右的数组分别再进行步骤1(即递归)。 代码实现:public class QuickSort {/*** MethodName:main * Description: *
2016-09-28 20:13:33
328
原创 常用排序算法之冒泡排序
冒泡排序,不断的遍历数组,若相邻两元素A[i]>A[i+1],则将A[i]与A[i+1]交换。代码实现:public class BubbleSort {public static void main(String[] args) {int[] arr={7,6,4,9,0,5,2,8,3,1}; bubbleSort(arr);}public stat
2016-09-28 16:28:48
195
原创 常用排序算法之堆排序
堆,这里指的是二叉堆,即完全二叉树结构。分为最大堆和最小堆。最大堆中,任何节点都比其子节点要大;最小堆中,任何节点都比其子节点要小。堆排序,是一种二叉树选择排序。通过不断地将二叉树调整成最大堆,取出根节点(最大值)放入二叉树的末节点,实现数组的升序排列。步骤:将初始数组构建成最大堆;交换A[0]和A[n-1]的值;将剩余A[0]和A[n-2]构成的完全二叉树构建成最大堆;交换A
2016-09-28 16:19:32
260
原创 常用排序算法之直接选择排序
直接选择排序:数组A[n],遍历数组元素,将最小的元素放在第一位,剩余元素重复该操作。 编程实现: /*** Title:DirectChooseSort * Description:选择排序之直接选择排序 * Company: * @author Sunny* @date 2016-9-25下午3:47:49 */public c
2016-09-28 15:55:10
271
原创 常用排序算法之希尔排序
希尔排序:实际为分组采用直接插入排序。若有数组A[n],取k=n/2(若k不是奇数则加1),若i>j,将i-j=k的A[i]、A[j]放在一组,并对每组进行直接插入排序;再取k=k/2(若k不是奇数则加1)……,直到k=1,然后对数组进行直接插入排序。(实际上分组数分别为n/2(n/2+1)、……,5,3,1)代码:public class ShellSort {publi
2016-09-28 15:42:36
582
原创 常用排序算法之直接插入排序
直接插入排序:若一个数组A[n],当插入元素A[i]时(i>0),前i-1个元素已排序完成,此时将A[i]的值取出,并依次与A[i-1]、A[i-2]、……A[0]比较,若A[i] 代码:public class DirectInsertSort {public static void main(String[] args) { int[]
2016-09-28 15:06:22
262
原创 二叉树的构建与遍历
根据数组创建二叉树,并对二叉树进行先序、中序和后序遍历。 代码实现:import java.util.LinkedList;import java.util.List;public class BinaryTree {private static List nodeList=null;/*** MethodName:main * De
2016-09-27 20:55:18
298
原创 常用排序算法之基数排序
基数排序,对数组中各元素分别根据个位、十位、百位……进行桶式排序。 代码实现: public class RadixSort {/*** MethodName:main * Description:常用排序算法之基数排序 * @param args * Return:void * @author Sunny* @date 20
2016-09-27 17:28:00
272
原创 常用排序算法之桶式排序
桶式排序,也叫计数排序,就是为每个元素创建一个编号为该元素值的桶,将相同元素的个数写入该桶中,然后根据buckets[i]=buckets[i]+buckets[i-1]计算该元素在排序后数组中的位置,最后将原数组元素根据计算出的数组位置放入原数组。 形象展示 步骤:复制arr[n]到temp[n];创建桶式数组buckets[max-min],并
2016-09-27 15:43:33
578
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人