自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

辛旭东小小工作室

UNIX, Linux, C|C++

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

原创 C++ 单向链表 —— 初始化、插入、返回第一个节点、删除、查找、长度、打印、反转(逆序)

单向链表的概念:如果“一个节点”将指向“另一个节点的指针”作为数据成员,那么多个这样的节点可以连起来,只用一个变量就能够访问整个节点序列,我们称之为链表。如果序列中的节点只包含指向后继节点的链接,该链表就称之为单向链表。01 声明:#ifndef LINKLIST_H#define LINKLIST_H#include <iostream>using name...

2019-03-15 02:48:15 3020

原创 C++ 二叉查找树 —— 插入、遍历、查找、删除、销毁

二叉查找树的特性:二叉查找树(Binary Search Tree)(又:二叉搜索树,二叉排序树)具有以下特性:(1)若“左子树”不为空,则“左子树”上所有节点的值均小于“根节点”的值;(2)若“右子树”不为空,则“右子树”上所有节点的值均大于“根节点”的值;(3)左、右子树也分别为二叉排序树。01 声明:#include &lt;iostream&gt;us...

2019-03-15 02:30:11 2457 1

原创 C++ 计数排序

计数排序的原理:(1)首先,找出最大的元素,给“count[ ]”申请“最大元素的下标+1”个单元(因为数组下标是从0开始的,所以要+1);(2)然后,统计每个元素出现的次数,把次数存到“count[ ]”里;(3)最后,通过一个元素出现的次数-1,从而算出正确顺序的位置,再把元素放进去,就有顺序了。 因为不知道范围的大小,所以需要申请内存,如果知道范围的大小,就可以直接声明。...

2019-03-15 01:13:06 1005

原创 C++ 基数排序

基数排序的原理:(1)首先,把整数通过求余的方式拆分成“个位、十位、百位、… ”;(2)然后,统计每个整数的“个位、十位、百位、… ”出现的次数,之后把次数存到以“余数”为编号的桶子里;(3)最后,通过一个整数出现的次数-1,从而算出正确顺序的位置,再把整数放进去,就有顺序了。#include &lt;iostream&gt;#include &lt;stdlib.h&gt;...

2019-03-15 00:13:16 630 1

原创 C++ 归并排序

归并排序的原理:(1)首先,把一个数组以中间元素为界限分成两组;(2)然后“左边数组”和“右边数组”中的元素分别进行比较;(3)最后合并两个已经排好顺序的数组,我们称之为归并排序。#include &lt;iostream&gt;#include &lt;stdlib.h&gt;using namespace std;/**************************...

2019-03-13 18:34:18 1128

原创 C++ 堆排序

堆排序的原理:堆是一棵完全二叉树,堆满足两个属性:(1)堆的每一个父节点的值都大于(或小于)其子节点;(2)树是完全平衡的,最底层的叶节点都位于最左边的位置上。大顶堆:(1)首先,通过“左右节点”与“父节点”不断地进行比较,得出最大值作为根节点,这样就形成了一个大顶堆。(2)然后把最大值拿出来,放到后面的位置,这样元素就减少一个,之后再去重新建堆。(3)不断的重复...

2019-03-13 17:36:22 306

原创 C++ 快速排序 —— 左右指针法

快速排序 ——左右指针法的原理:(1)设最右值为枢轴值(2)从左往右扫描,发现大于枢轴值的就进行位置互换(3)从右往左扫描,发现小于枢轴值的就进行位置互换#include &lt;iostream&gt;#include &lt;stdlib.h&gt;using namespace std;/**************************************...

2019-03-11 23:02:11 1275

原创 C++ 希尔排序

希尔排序的原理:(1)首先,从数组的首元素开始每隔“步长(间隔)”个元素就挑选一个元素出来作为子数组元素。(2)然后每个子数组各自进行比较,比较好后,每个子数组都有顺序,进入下一轮,步长(间隔)减少, 再根据步长(间隔)分组进行比较。(3)重复以上操作,最后就有顺序了。#include &lt;iostream&gt;#include &lt;stdlib....

2019-03-11 22:23:35 4697

原创 C++ 冒泡排序

冒泡排序的原理:比较两个相邻的元素,将最大的元素交换至右端(升序),每一轮都重复以上操作,最后就有顺序了。#include &lt;iostream&gt;#include &lt;stdlib.h&gt;using namespace std;/****************************************************************//...

2019-03-11 16:42:51 448

原创 C++ 二分(折半)查找

二分查找的原理:首先,假设表中元素是按升序排列,将表“中间位置记录的关键字”与“查找关键字”进行比较,如果两者相等,则查找成功。否则,利用“中间位置的记录”将表分成“前后”两个子表:(1)如果“查找关键字”&lt;“中间关键字”,前子表查找。(2)如果“查找关键字”&gt;“中间关键字”,后子表查找。 重复以上过程,直到查找成功。#include &lt;iostrea...

2019-03-11 11:14:26 256

原创 C++ 梳排序

梳排序的原理:通过比较元素彼此之间的步长位置这种方式对数据进行预处理。在每次移动中,步长会越来越小,直至它等于1。#include &lt;iostream&gt;#include &lt;stdlib.h&gt;using namespace std;/*******************************************//* 梳排序/*********...

2018-09-13 18:51:43 387

原创 C ++ 选择排序

选择排序的原理:首先,假设array[0]为第一个最小的元素,然后与待排序的元素进行比较,得出最小元素之后,通过交换,把最小元素放到待排序列的前面,每一轮都重复以上操作,最后就有顺序了。#include &lt;iostream&gt;#include &lt;stdlib.h&gt;using namespace std;/***************************...

2018-09-12 16:38:26 1608

原创 C ++ 直接插入排序

直接插入排序的原理:将一个待排序的元素,通过与有序序列的所有元素进行比较后,再插入到有序的序列中。#include &lt;iostream&gt;#include &lt;stdlib.h&gt;using namespace std;/*****************************************************************//* ...

2018-09-11 15:19:03 832

空空如也

空空如也

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

TA关注的人

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