数据结构-严蔚敏教材详解
本专栏将涵盖《数据结构》一书中的主要内容,包括线性结构、栈和队列、串、数组和广义表、树和二叉树、图以及查找和排序等。每篇文章将详细介绍相关的数据结构知识和算法,并提供相应的课后习题详解,帮助读者加深理解和掌握。
Wlq0415
I wake up in morning and summarize
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
查找与排序-堆排序
分为两种方法:每个结点的值都大于等于其左右孩子结点的值,称为大顶堆;3.由于交换后新的堆顶R[1]可能违反堆的性质,因此需要对当前无序区(R1,R2,……Rn-1)调整为新堆,然后再次将R[1]与无序区最后一个元素交换,得到新的无序区(R1,R2。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。2.将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,…n-1]原创 2024-10-02 23:01:18 · 399 阅读 · 0 评论 -
查找与排序-快速排序
快速排序的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,已达到整个序列有序。从待排序列中任意选取一个记录(通常选取第一个记录)作为基准值,然后将记录中关键字比它小的记录都安置在它的位置之前,将记录中关键字比它大的记录都安置在它的位置之后。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。原创 2024-10-02 22:48:35 · 387 阅读 · 0 评论 -
查找与排序-希尔排序
其算法的基本思想是:先将待排记录序列分割成为若干子序列分别进行插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行一次直接插入排序。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。3.每趟排序,根据对应的增量 ti,将待排序列分割成若干长度为 m 的子序列,分别对各子表进行直接插入排序。仅增量因子为 1 时,整个序列作为一个表来处理,表长度即为整个序列的长度。原创 2024-10-02 22:47:17 · 316 阅读 · 0 评论 -
查找与排序-选择排序
具体来说,假设长度为n的数组arr,要按照从小到大排序,那么先从n个数字中找到最小值min1,如果最小值min1的位置不在数组的最左端(也就是min1不等于arr[0]),则将最小值min1和arr[0]交换,接着在剩下的n-1个数字中找到最小值min2,如果最小值min2不等于arr[1],则交换这两个数字,依次类推,直到数组arr有序排列。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。原创 2024-10-02 22:46:29 · 212 阅读 · 0 评论 -
查找与排序-插入排序
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。是一种简单直观的排序算法,其基本思想是将未排序的元素逐个插入到已排序的部分中,直到所有元素都被插入到合适的位置为止。假设我们有以下待排序的数组:[5, 3, 8, 6, 2]最终,数组变为有序状态:[2, 3, 5, 6, 8]原创 2024-10-02 22:44:46 · 742 阅读 · 0 评论 -
查找与排序-冒泡排序
假设长度为n的数组arr,要按照从小到大排序。则冒泡排序的具体过程可以描述为:首先从数组的第一个元素开始到数组最后一个元素为止,对数组中相邻的两个元素进行比较,如果位于数组左端的元素大于数组右端的元素,则交换这两个元素在数组中的位置。接着对该数组除最右端的n-1个元素进行同样的操作,再接着对剩下的n-2个元素做同样的操作,直到整个数组有序排列。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。原创 2024-10-02 22:45:38 · 272 阅读 · 0 评论 -
查找与排序-计数排序
计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。而是 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。1.找出待排序的数组中最大和最小的元素;原创 2024-10-02 23:02:44 · 336 阅读 · 0 评论 -
数据结构-链表习题(C++)
4.删除重复结点:如果链表中有重复的元素,删除重复的元素,使得所有值最多只出现一次,例如,如果链表中有3个结点的值是100,那么需要删除两个值为100的结点。3.删除指定结点: 如果指定的被删除结点存在就删除它,然后打印:已经删除,如果不存在,输出信息: 链表中没有此结点,无法删除。1.从键盘输入若干大于0的整数,用这些整数构造一个单链表.当用户输入小于等于0的值时创建链表结束并在终端打印输出这个链表。2.在链表中查找某结点,如果能找到输出这个结点是第几个结点,如果找不到,输出:找不到此结点。原创 2023-12-10 13:10:53 · 373 阅读 · 0 评论 -
数据结构-线性表的链式存储结构
线性表是一种常见的数据结构,它是由一组具有相同数据类型的元素组成的序列。线性表的链式存储结构是其中一种实现方式。链式存储结构使用指针将线性表中的元素连接起来,每个元素包含数据和指向下一个元素的指针。这样,线性表中的元素可以在内存中分散存储,不需要连续的内存空间。链式存储结构的优点是可以动态地分配内存空间,不受固定大小的限制。当需要插入或删除元素时,只需要修改指针的指向,而不需要移动其他元素。这样可以提高插入和删除操作的效率。然而,链式存储结构也有一些缺点。首先,由于每个元素都需要额外的指针空间,原创 2023-12-08 17:07:12 · 364 阅读 · 0 评论 -
数据结构-线性表的顺序存储结构
线性表是一种常见的数据结构,它是由一组具有相同数据类型的元素组成的有序序列。线性表的顺序存储是一种将线性表的元素按照其逻辑顺序依次存储在一块连续的存储空间中的方法。顺序存储的优点是可以随机访问元素,查找和访问效率高。同时,顺序存储还可以通过下标直接访问元素,插入和删除元素的操作相对简单。然而,顺序存储的缺点是插入和删除元素时需要移动大量元素,效率较低。此外,顺序存储的存储空间需要预先分配,大小固定,不便于动态扩展。因此,在实际应用中,需要根据具体情况选择合适的存储方式。原创 2023-12-08 12:02:19 · 276 阅读 · 0 评论
分享