<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[学习一点，记录一点]]></description><link>https://blog.youkuaiyun.com/qq_42937982</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_42937982]]></copyright><item><title><![CDATA[求两个线性表的并集-用单链表]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/118277539</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/118277539</guid><author>qq_42937982</author><pubDate>Sun, 27 Jun 2021 18:08:47 +0800</pubDate><description><![CDATA[求一般集合的并集：

已知两个集合A和B，A=(7,5,3,11)   B=(2,6,3)
A U B=(7,5,3,11,2,6)

用单链表解决-核心代码：

//求线性表的并集 不是有序的                            
void mergeList(LinkList &amp;A,LinkList B){                
	//将所有在线性表B中而不再A中的数据 插入到A中去        
	//1 先求出两个表的长度                    ]]></description><category></category></item><item><title><![CDATA[单链表算法(增删改查、头插法、尾插法、单链表逆置、求倒数第k个节点值、找中间节点、删除单链表中最大值节点、分割单链表）、)]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/118198981</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/118198981</guid><author>qq_42937982</author><pubDate>Fri, 25 Jun 2021 00:27:30 +0800</pubDate><description><![CDATA[单链表简介：

单链表是一种链式存取的数据结构，用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的，每个结点的构成：元素(数据元素的映象) + 指针(指示后继元素存储位置)，元素就是存储数据的存储单元，指针就是连接每个结点的地址数据。

代码：

#include &lt;stdio.h&gt;
#include "stdlib.h"

typedef int ElemType;
typedef struct Node
{

    ElemType data;

    stru]]></description><category></category></item><item><title><![CDATA[Java数据结构-归并排序]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113701238</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113701238</guid><author>qq_42937982</author><pubDate>Fri, 05 Feb 2021 17:56:22 +0800</pubDate><description><![CDATA[思想：

归并排序（Merge Sort）是建立在归并操作上的一种有效，稳定的排序算法。
该算法是采用分治法（Divide and Conquer）的一个非常典型的应用。将已有序的子序列合并，得到完全有序的序列。
即先使每个子序列有序，再使子序列段间有序。若将两个有序表合并成一个有序表，称为二路归并。


上代码：

package Data.Structure.sort.Merge;

import java.util.Arrays;

public class MergeSort {
    publi]]></description><category></category></item><item><title><![CDATA[Java数据结构-堆排序]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113700644</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113700644</guid><author>qq_42937982</author><pubDate>Fri, 05 Feb 2021 17:47:19 +0800</pubDate><description><![CDATA[堆排序步骤：

堆排序--升序采用大根堆 -----降序采用小根堆
1、将待排序序列构建成大根堆即：先要建立堆-&gt;建堆过程需要调整堆
2、此时，整个序列的最大值就是堆顶的根节点，将其与末尾的元素进行交换,此时末尾元素就是最大值
3、然后将剩余的n-1个元素构成一个堆，这样会得到n个元素的次小值，如此反复执行 便能得到一个有序序列了


步骤：

其实就是堆的初始化（过程中 调整堆）、交换第一个元素和最后一个元素、继续调整堆(是从最后一个非终端结点(n/2取下界) 开始往上调整)











]]></description><category></category></item><item><title><![CDATA[Java数据结构-简单选择排序]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113700354</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113700354</guid><author>qq_42937982</author><pubDate>Fri, 05 Feb 2021 17:16:47 +0800</pubDate><description><![CDATA[思想：

   首先在未排序序列中找到最小（大）元素，存放到排序序列的起始位置，然后，再从剩余未排序元素中继续寻找最小（大）元素，然后放到已排序序列的末尾。以此类推，直到所有元素均排序完毕。


上代码：
&lt;font color=#999AAA
package Data.Structure.sort.select_sort;
import java.util.Arrays;
/**
 * 将选择排序封装成一个方法 直接调用就ok
 * 给8000个数排序 3秒
 */
public class Sel]]></description><category></category></item><item><title><![CDATA[Java数据结构-快速排序]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113699634</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113699634</guid><author>qq_42937982</author><pubDate>Fri, 05 Feb 2021 17:06:23 +0800</pubDate><description><![CDATA[快排基本思想：

初始化标记low为划分第一个元素的位置（下标），high为最后一个元素的位置(下标),然后不断地移动两边的元素进行赋值。
（1）high向前移动，找到第一个比pivot小的元素
（2）low向后移动找到第一个比pivot大的元素
（3）进行赋值操作
（4）继续移动标记 执行上面3个步骤 直到low&gt;=high


上代码：
建议手动敲一下 手动比划一下 理解过程
package Data.Structure.sort.exchangeSort;
import java.util.Ar]]></description><category></category></item><item><title><![CDATA[Java数据结构-冒泡排序]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113699487</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113699487</guid><author>qq_42937982</author><pubDate>Fri, 05 Feb 2021 16:46:13 +0800</pubDate><description><![CDATA[冒泡思想：

  比较相邻的元素。如果第一个比第二个大，就交换他们两个。 
对每一对相邻元素做同样的工作，从开始第一对到结尾的最后一对。在 这一点，最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤，除了最后一个。
持续每次对越来越少的元素重复上面的步骤，直到没有任何一对数字需要比较。


优化冒泡：

package Data.Structure.sort.exchangeSort;
import java.util.Arrays;
public class BubbleSort {
    pu]]></description><category></category></item><item><title><![CDATA[C语言-有序表的合并]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113698989</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113698989</guid><author>qq_42937982</author><pubDate>Fri, 05 Feb 2021 16:33:02 +0800</pubDate><description><![CDATA[上代码：

#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]]></description><category></category></item><item><title><![CDATA[C语言-顺序表的基本操作]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113698710</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113698710</guid><author>qq_42937982</author><pubDate>Fri, 05 Feb 2021 16:23:27 +0800</pubDate><description><![CDATA[代码：

#define MAXSIZE 20
#include &lt;stdio.h&gt;
typedef int Elemtype;  //顺序表中存放整型元素
typedef struct
{
	Elemtype elem[MAXSIZE];//动态分配空间的首地址 
	int length;//线性表元素的个数 
}SqlList,*PSqlList;


//&amp;L 表示L要改变 

//初始化线性表 
void InitList(SqlList &amp;L){
	L.length=0]]></description><category></category></item><item><title><![CDATA[Java数据结构-希尔排序]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113661794</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113661794</guid><author>qq_42937982</author><pubDate>Thu, 04 Feb 2021 18:24:43 +0800</pubDate><description><![CDATA[基本定义：

希尔排序法(缩小增量法) 属于插入类排序，是将整个无序列分割成若干小的子序列分别进行插入排序的方法。

代码1：

/**
* 希尔排序
* 对相隔d位置的元素组进行直接插入排序
* @param A
*/
public static void shellSort1(int A[]) {
//对照直接插入 对比哈 
    int i, j, d, temp;
    d = A.length / 2;//d为增量
    while (d &gt; 0) {
        for (i =]]></description><category></category></item><item><title><![CDATA[Java数据结构-折半插入排序]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113660390</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113660390</guid><author>qq_42937982</author><pubDate>Thu, 04 Feb 2021 18:07:04 +0800</pubDate><description><![CDATA[基本定义：

折半插入排序（binary insertion sort）是对插入排序算法的一种改进，由于排序算法过程中，就是不断的依次将元素插入前面已排好序的序列中。由于前半部分为已排好序的数列，这样我们不用按顺序依次寻找插入点
可以采用折半查找的方法来加快寻找插入点的速度

思想：

直接插入 链接地址
https://editor.youkuaiyun.com/md/?articleId=113657011
折半插入 链接地址
https://editor.youkuaiyun.com/md/?articleId=113638]]></description><category></category></item><item><title><![CDATA[Java数据结构-直接插入排序]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113657011</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113657011</guid><author>qq_42937982</author><pubDate>Thu, 04 Feb 2021 17:33:15 +0800</pubDate><description><![CDATA[插入思想：

把n个待排序的元素看成一个有序表和一个无序表

开始时有序表中只有一个元素,无序表中有n-1个元素
排序过程中每次从无序表中取出第一个元素，依次和有序表中的元素比较，将他插入到合适的位置

思路图：



代码1-分解步骤：

public class InsertSort {
public static void main(String[] args) {
int[] arr={101,34,119,1};
insertSort(arr);
}
//插入排序
public static vo]]></description><category></category></item><item><title><![CDATA[Java数据结构-折半查找(二分查找)]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113638842</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113638842</guid><author>qq_42937982</author><pubDate>Thu, 04 Feb 2021 16:43:42 +0800</pubDate><description><![CDATA[查找要求：

1.必须采用顺序存储结构。
2.必须按关键字大小有序排列。

查找思想：

首先，假设表中元素是按升序排列，将表中间位置记录的关键字与查找关键字比较，如果两者相等，则查找成功；否则利用中间位置记录将表分成前、后两个子表，如果中间位置记录的关键字大于查找关键字，则进一步查找前一子表，否则进一步查找后一子表。重复以上过程，直到找到满足条件的记录，使查找成功，或直到子表不存在为止，此时查找不成功。

代码1-非递归查找：

public static int Search(int arr[], in]]></description><category></category></item><item><title><![CDATA[Java数据结构-顺序查找]]></title><link>https://blog.youkuaiyun.com/qq_42937982/article/details/113635885</link><guid>https://blog.youkuaiyun.com/qq_42937982/article/details/113635885</guid><author>qq_42937982</author><pubDate>Thu, 04 Feb 2021 12:43:15 +0800</pubDate><description><![CDATA[基本思想：
对于任意一个序列以及一个给定的元素，将给定元素与序列中元素依次比较，直到找出与给定关键字相同的元素，或者将序列中的元素与其都比较完为止。

代码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]]></description><category></category></item></channel></rss>