自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sunny_Shu123的博客

千里之行,始于足下;编程技能,始于动手

  • 博客(14)
  • 收藏
  • 关注

原创 线程状态转换及基本操作

1. 新建线程的方式继承Thread类,重写run()方法继承runnable接口;继承callable接口。2. 线程的状态转换3. 线程状态转换的基本操作

2018-05-15 22:31:12 464

原创 并发编程的优缺点

1. 为什么要并发编程及优点提高cpu利用率;业务拆分,提升应用性能。2. 并发编程缺点频繁地上下文切换(context)比较耗时;线程安全问题(如死锁)。3. 易混淆的概念同步 vs 异步(是否等待等待调用的方法返回后再往后执行)并发 vs 并行(多个任务交替进行 vs  真正的同时进行)阻塞 vs 非阻塞(是否资源被占有,导致线程等待和挂起)临界区(被多线程共享的资源或数据)参考链接:http...

2018-05-14 22:54:50 613

转载 我是一个线程(对理解多线程很有帮助)

转载自CSDN博客:log.csdn.net/tomcat_2014/article/details/51069096第一回 初生牛犊我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马

2016-09-29 20:50:25 306

原创 单向链表的创建和操作

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 471

原创 常用排序算法之归并排序

归并排序,核心为数组分解和合并的过程。将数组逐渐分解,直到两个两个元素为一组,待小组排序完成后,再将两个两个小组合并为一个一个有序的大组……最后得到排序后的原始数组。        代码实现:        public class MergingSort {/*** MethodName:main * Description:常用排序算法之归并排序 * @para

2016-09-28 20:51:33 234

原创 常用排序算法之快速排序

快速排序,采用分治策略,将数组A[n]分组进行递归快速排序。        步骤:以A[0]为基准元素,将数组中比其小的元素放在其左边,比其大的放在其右边;将基准元素左右的数组分别再进行步骤1(即递归)。        代码实现:public class QuickSort {/*** MethodName:main * Description: *

2016-09-28 20:13:33 273

原创 常用排序算法之冒泡排序

冒泡排序,不断的遍历数组,若相邻两元素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 159

原创 常用排序算法之堆排序

堆,这里指的是二叉堆,即完全二叉树结构。分为最大堆和最小堆。最大堆中,任何节点都比其子节点要大;最小堆中,任何节点都比其子节点要小。堆排序,是一种二叉树选择排序。通过不断地将二叉树调整成最大堆,取出根节点(最大值)放入二叉树的末节点,实现数组的升序排列。步骤:将初始数组构建成最大堆;交换A[0]和A[n-1]的值;将剩余A[0]和A[n-2]构成的完全二叉树构建成最大堆;交换A

2016-09-28 16:19:32 212

原创 常用排序算法之直接选择排序

直接选择排序:数组A[n],遍历数组元素,将最小的元素放在第一位,剩余元素重复该操作。        编程实现:        /*** Title:DirectChooseSort * Description:选择排序之直接选择排序 * Company:  * @author Sunny* @date 2016-9-25下午3:47:49 */public c

2016-09-28 15:55:10 234

原创 常用排序算法之希尔排序

希尔排序:实际为分组采用直接插入排序。若有数组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 485

原创 常用排序算法之直接插入排序

直接插入排序:若一个数组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 227

原创 二叉树的构建与遍历

根据数组创建二叉树,并对二叉树进行先序、中序和后序遍历。         代码实现: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 250

原创 常用排序算法之基数排序

基数排序,对数组中各元素分别根据个位、十位、百位……进行桶式排序。        代码实现:       public class RadixSort {/*** MethodName:main * Description:常用排序算法之基数排序 * @param args * Return:void  * @author Sunny* @date 20

2016-09-27 17:28:00 222

原创 常用排序算法之桶式排序

桶式排序,也叫计数排序,就是为每个元素创建一个编号为该元素值的桶,将相同元素的个数写入该桶中,然后根据buckets[i]=buckets[i]+buckets[i-1]计算该元素在排序后数组中的位置,最后将原数组元素根据计算出的数组位置放入原数组。         形象展示        步骤:复制arr[n]到temp[n];创建桶式数组buckets[max-min],并

2016-09-27 15:43:33 505

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除