自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习一点,记录一点

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

原创 求两个线性表的并集-用单链表

求一般集合的并集: 已知两个集合A和B,A=(7,5,3,11) B=(2,6,3) A U B=(7,5,3,11,2,6) 用单链表解决-核心代码: //求线性表的并集 不是有序的 void mergeList(LinkList &A,LinkList B){ //将所有在线性表B中而不再A中的数据 插入到A中去 //1 先求出两个表的长度

2021-06-27 18:08:47 1343 1

原创 单链表算法(增删改查、头插法、尾插法、单链表逆置、求倒数第k个节点值、找中间节点、删除单链表中最大值节点、分割单链表)、)

单链表简介: 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 代码: #include <stdio.h> #include "stdlib.h" typedef int ElemType; typedef struct Node { ElemType data; stru

2021-06-25 00:27:30 1040

原创 Java数据结构-归并排序

思想: 归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法。 该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。 即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 上代码: package Data.Structure.sort.Merge; import java.util.Arrays; public class MergeSort { publi

2021-02-05 17:56:22 264 1

原创 Java数据结构-堆排序

堆排序步骤: 堆排序--升序采用大根堆 -----降序采用小根堆 1、将待排序序列构建成大根堆即:先要建立堆->建堆过程需要调整堆 2、此时,整个序列的最大值就是堆顶的根节点,将其与末尾的元素进行交换,此时末尾元素就是最大值 3、然后将剩余的n-1个元素构成一个堆,这样会得到n个元素的次小值,如此反复执行 便能得到一个有序序列了 步骤: 其实就是堆的初始化(过程中 调整堆)、交换第一个元素和最后一个元素、继续调整堆(是从最后一个非终端结点(n/2取下界) 开始往上调整)

2021-02-05 17:47:19 614

原创 Java数据结构-简单选择排序

思想: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 上代码: <font color=#999AAA package Data.Structure.sort.select_sort; import java.util.Arrays; /** * 将选择排序封装成一个方法 直接调用就ok * 给8000个数排序 3秒 */ public class Sel

2021-02-05 17:16:47 168

原创 Java数据结构-快速排序

快排基本思想: 初始化标记low为划分第一个元素的位置(下标),high为最后一个元素的位置(下标),然后不断地移动两边的元素进行赋值。 (1)high向前移动,找到第一个比pivot小的元素 (2)low向后移动找到第一个比pivot大的元素 (3)进行赋值操作 (4)继续移动标记 执行上面3个步骤 直到low>=high 上代码: 建议手动敲一下 手动比划一下 理解过程 package Data.Structure.sort.exchangeSort; import java.util.Ar

2021-02-05 17:06:23 132

原创 Java数据结构-冒泡排序

冒泡思想: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在 这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 优化冒泡: package Data.Structure.sort.exchangeSort; import java.util.Arrays; public class BubbleSort { pu

2021-02-05 16:46:13 150

原创 C语言-有序表的合并

上代码: #include "stdio.h" #define MAXSIZE 100 typedef int ElemType; /*顺序表中存放整型元素*/ typedef struct{ ElemType elem[MAXSIZE]; //ElemType目前为整型;其可以为任意类型 int last; //最后一个元素在数组中的下标 }SeqList; /*函数声明*/ void initList(SeqList *L); void printList(Se

2021-02-05 16:33:02 1483

原创 C语言-顺序表的基本操作

代码: #define MAXSIZE 20 #include <stdio.h> typedef int Elemtype; //顺序表中存放整型元素 typedef struct { Elemtype elem[MAXSIZE];//动态分配空间的首地址 int length;//线性表元素的个数 }SqlList,*PSqlList; //&L 表示L要改变 //初始化线性表 void InitList(SqlList &L){ L.length=0

2021-02-05 16:23:27 342

原创 Java数据结构-希尔排序

基本定义: 希尔排序法(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法。 代码1: /** * 希尔排序 * 对相隔d位置的元素组进行直接插入排序 * @param A */ public static void shellSort1(int A[]) { //对照直接插入 对比哈 int i, j, d, temp; d = A.length / 2;//d为增量 while (d > 0) { for (i =

2021-02-04 18:24:43 138

原创 Java数据结构-折半插入排序

基本定义: 折半插入排序(binary insertion sort)是对插入排序算法的一种改进,由于排序算法过程中,就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列,这样我们不用按顺序依次寻找插入点 可以采用折半查找的方法来加快寻找插入点的速度 思想: 直接插入 链接地址 https://editor.youkuaiyun.com/md/?articleId=113657011 折半插入 链接地址 https://editor.youkuaiyun.com/md/?articleId=113638

2021-02-04 18:07:04 236

原创 Java数据结构-直接插入排序

插入思想: 把n个待排序的元素看成一个有序表和一个无序表 开始时有序表中只有一个元素,无序表中有n-1个元素 排序过程中每次从无序表中取出第一个元素,依次和有序表中的元素比较,将他插入到合适的位置 思路图: 代码1-分解步骤: public class InsertSort { public static void main(String[] args) { int[] arr={101,34,119,1}; insertSort(arr); } //插入排序 public static vo

2021-02-04 17:33:15 234

原创 Java数据结构-折半查找(二分查找)

查找要求: 1.必须采用顺序存储结构。 2.必须按关键字大小有序排列。 查找思想: 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。 代码1-非递归查找: public static int Search(int arr[], in

2021-02-04 16:43:42 211

原创 Java数据结构-顺序查找

基本思想: 对于任意一个序列以及一个给定的元素,将给定元素与序列中元素依次比较,直到找出与给定关键字相同的元素,或者将序列中的元素与其都比较完为止。 代码1-查找某个数(有多个相同的数) 保存至List中: public class SeqSearch1 { public static void main(String[] args) { int arr[] = {1, 9, 11, 11, 34, 89}; ArrayList arrayList = seqSearch(arr, 11); if (ar

2021-02-04 12:43:15 214

空空如也

空空如也

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

TA关注的人

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