随笔分类 -  数据结构

摘要:https://www.cnblogs.com/whgk/p/6071617.html 阅读全文
posted @ 2021-01-15 18:38 RealQ 阅读(74) 评论(0) 推荐(0)
摘要:已解决 方式一: last = new Node(null,null); 方式二: last == null /* 错误的根本原因:last = new Node(null,null)不等于last = null; 方式二容易产生空指针异常的问题 */ 阅读全文
posted @ 2021-01-15 18:33 RealQ 阅读(182) 评论(0) 推荐(0)
摘要:已解决: 问题原因,含有尾结点的双链表未完成尾结点的指向,在第一个节点插入的时候,需要完成尾结点的指向 代码如下 //如果是第一个节点 if(isEmpty()){ Node before = head; //创建第一个节点 Node<T> newNode = new Node<>(t, null, 阅读全文
posted @ 2021-01-15 18:22 RealQ 阅读(126) 评论(0) 推荐(0)
摘要:排序原理: 1.首先设定一个分界值,通过该分界值将数组分成左右两部分; 2.将大于或等于分界值的数据放到到数组右边,小于分界值的数据放到数组的左边。此时左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值; 3.然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个 阅读全文
posted @ 2021-01-10 21:03 RealQ 阅读(159) 评论(0) 推荐(0)
摘要:排序原理: 1.尽可能的一组数据拆分成两个元素相等的子组,并对每一个子组继续拆分,直到拆分后的每个子组的元素个数是1为止。 2.将相邻的两个子组进行合并成一个有序的大组; 3.不断的重复步骤2,直到最终只有一个组为止。 排序过程: 例:{8,4,5,7,1,3,6,2} package com.so 阅读全文
posted @ 2021-01-10 20:52 RealQ 阅读(90) 评论(0) 推荐(0)
摘要:排序原理: 1.选定一个增长量h,按照增长量h作为数据分组的依据,对数据进行分组; 2.对分好组的每一组数据完成插入排序; 3.减小增长量,最小减为1,重复第二步操作。 排序过程: 例:{9,1,2,5,7,4,8,6,3,5} package com.sort; /* * Author:Real_ 阅读全文
posted @ 2021-01-10 20:43 RealQ 阅读(125) 评论(0) 推荐(0)
摘要:排序原理: 1.把所有的元素分为两组,已经排序的和未排序的; 2.找到未排序的组中的第一个元素,向已经排序的组中进行插入; 3.倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他的元素向后移动一位; 排序过程: 例:{4,3, 阅读全文
posted @ 2021-01-08 23:56 RealQ 阅读(146) 评论(0) 推荐(0)
摘要:排序原理: 1.每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他某个索引处的值,则假定其他某个索引出的值为最小值,最后可以找到最小值所在的索引 2.交换第一个索引处和最小值所在的索引处的值 排序过程: 例:{1,2,4,5,7,8,9,1 阅读全文
posted @ 2021-01-08 23:44 RealQ 阅读(95) 评论(0) 推荐(0)
摘要:排序原理: 1. 比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。 2. 对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大值。 排序过程: 例:{4,5,6,3,2,1} package com.sort; /* * Author: 阅读全文
posted @ 2021-01-08 21:05 RealQ 阅读(99) 评论(0) 推荐(0)