数据结构
文章平均质量分 60
隔壁皮皮王
这个作者很懒,什么都没留下…
展开
-
数据结构的高级排序算法——希尔排序算法
高级排序希尔排序希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本。需求: 排序前:{9,1,2,5,7,4,8,6,3,5}排序原理:选定一个增长量h,按照增长量h作为数据分组的依据,对数据进行分组。对分好组的每一组数据完成插入排序。减小增长量,最小减为1,重复第二步操作。图解:动图:由于希尔排序的设定,我们需要先确定增长量h:增长量h的值每一固定的规则,我们这里采用以下规则:int h=1;while(h<数组的长度/2){原创 2021-06-28 09:43:43 · 284 阅读 · 1 评论 -
排序算法基础——Comparable接口
Comparable接口java提供了一个Comparable接口用来定义比较规则,可实现对象间的比较。Comparable接口可以让实体类的两个实例依据类中某一字段的值进行比较或者排序。需求:对两个Student类对象的年龄age进行比较,获取年龄较大的Student对象。1.定义一个学生类Student,具有年龄age和姓名username两个属性,并通过Comparable接口提供比较规则:public class Student implements Comparable<Stud原创 2021-06-06 13:23:22 · 396 阅读 · 3 评论 -
排序算法时间复杂度测试——事后估算法
事后估算法reverse_arr.txt文本文件中存有10000~1的逆序数列,对于排序算法来说,逆序的数组是最复杂的,这里可用来测试算法的执行效率。这个文本文件可以使用IO流循环输出得到这个文件,大概例子之前IO部分有写到,这里就不再赘述。事后估算法的主要逻辑就是让算法执行预定好的逆序数组,在算法开始之前读取现在的系统时间,在算法执行结束后再次读取系统时间并求差值,便得到了算法执行所需要的时间。注:由于每个人电脑硬件的不同与系统执行效率的不同,所以导致相同算法在不同电脑上的运行速度是不一样的,但原创 2021-05-30 15:09:18 · 714 阅读 · 1 评论 -
数据结构的简单排序算法——选择排序算法
简单排序选择排序选择排序是一种更加简单直观的排序方法。需求: 将数组排序 排序前:{9,5,6,8,2,7,3,4,1}排序原理:每一次遍历的过程中,都假定第一个索引处的元素是最小(大)值,和其他索引处的值依次进行比较,如果当前索引处的值大(小)于其他某个索引处的值,则假定其他某个索引出的值为最小(大)值,最后可以找到最小(大)值所在的索引。交换第一个(最后一个)索引处和最小(大)值所在的索引处的值。选择排序API设计:类名Selection构造方法原创 2021-05-21 09:14:08 · 294 阅读 · 2 评论 -
数据结构的简单排序算法——插入排序算法
简单排序插入排序插入排序(Insertion sort)是一种简单直观且稳定的排序算法。需求:将数组排序排序前:{9,7,8,2,5,1,3,6,4}排序原理:把所有的元索分为两组,已经排序的和未排序的。找到未排序的组中的第一个元索,向已经排序的组中进行插入。倒叙遍历已经排序的元素,依次和待插入的元索进行比较,直到找到一个元索小于等于待插入元索,那么就把待插入元索放到这个位置,其他的元素向后移动一位。插入排序API设计:类名Insertion构造方法In原创 2021-05-21 09:41:34 · 268 阅读 · 4 评论 -
数据结构的简单排序算法——冒泡排序算法
简单排序冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较为简单的排序算法。需求:将数组排序 排序前:{9,5,6,8,2,7,3,4,1}排序原理:比较相邻元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。对每一对相邻元素做同样的工作,从第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大值。冒泡排序API设计:类名Bubble构造方法Bubble():创建Bubble对象成员方法1. public static原创 2021-05-17 09:59:03 · 429 阅读 · 2 评论 -
数据结构——概论总结
数据结构+算法=程序这句是著名的瑞士计算机科学家沃思(N.Wirth)教授提出的,它解释了程序的本质。这里数据结构是指数据的逻辑结构与存储结构,而算法则是对数据运算的描述。由此可见,程序设计的本质就是针对问题选择一种合适的数据结构与一种好的算法。1 常用术语在学习之前,我们要先了解与数据结构有关的常用术语:数据(data)是描述客观事物的数、字符以及能输入计算机中并被计算机处理的符号的集合。例如,一个代数方程的求解程序中所使用的数据是整数和实数,而一个文本编辑程序使用的数据是字符串。随着计算机的发展原创 2021-05-10 15:35:10 · 428 阅读 · 1 评论