
数据结构
旁白者说
葡萄美酒夜光杯,欲饮琵琶码上催
展开
-
数据结构之堆排序(二)
马不停蹄,堆上昨晚 ---------堆的代码public class Test { public static void main(String[] args) { Integer[] arr = {17, 9, 25, 21, 19, 12, 18, 23, 16, 15}; Heap.sort(arr); System.out.println(Arrays.toString(arr)); } }public static calss Hea原创 2020-12-09 14:43:43 · 141 阅读 · 0 评论 -
数据结构之堆排序(一)
既然在堆积如山的博客中,有幸与你相逢,那就让我把这堆中的点点滴滴向你道明吧.相逢怎可莫问出处.既是如此,那又何为"堆"也.堆(Heap)其实就是一颗完全二叉树的数组对象.就像下图大家应该知道二叉树吧,完全二叉树是指从根节点开始分出两个子节点,每个节点又可以分出两个子节点,以此类推,而完全二叉树的每一层节点从左向右都必须是满的,只有最后一层节点可以是从左向右但是右边可以不满,若要添加元素也必须从左至右的依次加满才能到下一层.其顺序至上而下,从左到右.将其一字型摆开便是一个数组.堆分为大顶堆和小顶原创 2020-12-09 00:53:17 · 199 阅读 · 0 评论 -
数据结构之逆波兰表达式
所谓逆波兰便是反其道而行之.我们一般上的表达式,运算符都是镶嵌在数与数之间的,而逆波兰则独树一帜将运算变成了小尾巴粘到了数字的后面.说起来好像很抽象,还是举个例子吧.例:一般表达式逆波兰表达式(a + (b - c) * d) / eabc - d * + e /该表达式的运算顺序:b - c = xx * d = ya + y = zz / e = result逆波兰采用了栈的先进后出的方式罗列数字与运算符的顺序第一步将a压入栈中,第二步将b压入,第三步压入c原创 2020-12-07 17:13:13 · 880 阅读 · 0 评论 -
数据结构之约瑟夫循环链表
忍不住再发一篇吧.哈哈~~约瑟夫的故事大家应该都有所耳闻吧,我第一次接触类似约瑟夫问题的话,应该是小学的时候班里大家一起做游戏,数到某个数(1~9)的倍数或者以该数结尾的话,数到的同学就要跳过该数说出下一个数,错了的话,要受惩罚或表演一个节目然后退出游戏,接着又从1开始数起,直到剩下最后的那个同学,而且最后那个同学有奖励喔.虽然与约瑟夫问题有点区别,但是纯属雷同对吧.上课的游戏归上课的游戏,而如果对约瑟夫故事很感兴趣的同学也可以百度一下,在这码路上我们还是欣赏下约瑟夫在码路上的风景吧!public c原创 2020-12-06 15:38:54 · 173 阅读 · 0 评论 -
数据结构之快速排序
"沉默加速度是我的脚步奔跑在视线里的路我不要祝福不理会孤独奔向最远处…"以这首歌献给快速排序,也献给自己以及奋斗在路上的伙伴们,在码路上能自由得加速度,一起奔向自己想要的更远处.public class Quick{ // public static void sort(Comparable[] a){ int left = 0;//左边下标从0开始 int right = a.length-1;//右边下标为长度-1开始 sort(a, le原创 2020-12-06 11:46:06 · 190 阅读 · 0 评论 -
数据结构之归并排序
“话说天下大势,分久必合,合久必分.”.那就让我一统江山,将其合并吧~~哇咔咔咔,废话不多说了,归并排序的代码来啦.归并毕竟相较之前的排序都会更复杂些,所以加了备注.写注释也是能获得码市好好公民奖的吧~^^public class Merge{ //准备一个临时数组 private static Comparable[] temp; //初始化 public static void sort(Comparable[] a){ temp = new Comp原创 2020-12-06 11:31:45 · 192 阅读 · 0 评论 -
数据结构之希尔排序
不管你喜不喜欢,我都要献上希尔排序,嘻嘻嘻~~public class Shell{ public static void sort(Comparable[] a){ int h = 1; while(h < a.length/2){ h = 2 * h + 1; } while(h > 0){ for(int i = h; i < a.length; i++){原创 2020-12-06 11:20:37 · 113 阅读 · 0 评论 -
数据结构之插入排序
来一曲插播如何,铛铛~~ 这就是插入排序的代码public class Insertion{ public static void sort(Comparablep[] a){ for(int i = 1; i < a.length; i++){ for(int j = i; j > 0; j--){ if(greater(a[j-1], a[j])){ exch(a, j原创 2020-12-06 11:13:56 · 111 阅读 · 0 评论 -
数据结构之选择排序
冒泡完就选择一下吧,让我们再看看选择排序的代码又是如何实现的.public class Selection{ public static void sort(Comparable[] a){ for(int i = 0; i < a.length-1; i++){ int minIndex = i; for(int j = i+1; j < a.length; j++){ if(greate原创 2020-12-06 11:10:32 · 95 阅读 · 0 评论 -
冒泡排序
我在这里冒个泡!!!下面是冒泡排序实现过程的代码,有需要的可以参考,如果要测试的话,请自行写测试代码.(话说不会写测试代码的程序猿不是一个好程序猿).原创 2020-12-06 11:04:20 · 106 阅读 · 0 评论