自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 七种排序--------快速排序(Quick Sort)

快速排序的思想是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。直接看代码:void QuickSort(Sqlist *L){ QSort(L,1,L->length);}因为用到递归,所以把函数封装了了一下。来看QSort()函数:void QSort(S...

2018-07-30 14:33:21 266

原创 七种排序--------归并排序(Merging Sort)

归并排序就是利用归并的思想实现的排序方法。他的原理是假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n/2] (整数)个长度为2或1的有序子序列;再两两归并,......,如此重复,直至得到一个长度为n的有序序列为止,这种排序方法称为2路归并排序。先来看代码:void MergeSort(Sqlist *L){ MSort(L-&gt...

2018-07-30 11:03:28 384

原创 C++四种强制类型转换总结

1.static_case强制类型转换   > 用于基本类型间的转换,但不能用于基本类型指针间的转换   > 用于有继承关系类对象之间的转换和类指针之间的转换如:int main(){ int i = 0; char c = 'c'; int * pi = &i; char* pc = &c; c = static_cast&lt...

2018-07-27 20:34:20 268

原创 strlen,strcmp,strcpy,strcat,strstr,strchr等字符串处理函数的内部实现

1.strlen();函数介绍(得到字符串的长度):int strlen(const char *s);形参:字符串首地址返回值:字符串长度内部实现:int strlen(const char *s) { int len = 0; while(*s++ != '\0') { len++; } return len;}2.strcmp();函数介...

2018-07-27 15:31:57 304

原创 单链表结构与顺序存储结构的优缺点

存储分配方式:        >顺序存储结构用一段连续的存储单元依次存储线性表的数据元素。        >单链表采用顺序存储结构,用一组任意的存储单元存放线性表的元素。时间性能:        >查找                 >>顺序存储结构O(1)                >>单链表O(n)         &...

2018-07-25 19:44:13 854

原创 链表的相关操作

相关概念:为了表示每个数据元素ai与其直接后继元素a(i+1)之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。然后把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称作指针或链。这两部分信息组成结点。n个结点链结成一个链表,即为线性表的链式存储结构,因为此链表中每个结点zhi只包含一...

2018-07-25 19:28:37 121

原创 线性表顺序存储相关操作

线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。下面给出关于线性表顺序存储常用操作的代码:#include <stdio.h>#define MAXSIZE 20 //存储空间初始分配量#define true 1#define false 0typedef int ElemType;typedef struct{ Elem...

2018-07-25 12:44:54 200

原创 C语言四大存储区域总结

一、简单的介绍一下四个区域:1.代码区--------主要存储程序代码指令,define定义的常量。2.数据区------主要存储全局变量(常量),静态变量(常量),常量字符串。3.栈区--------主要存储局部变量,栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但内存大小有限。4.堆区--------由malloc,calloc分配的内...

2018-07-24 21:07:23 8380 1

原创 七种排序--------堆排序(Heap Sort)

堆是具有下列性质的二叉树:每个结点的值都大于或等于其zuo'左右结点的值称为大顶锥;或者每个结点的值都小于或等于其左右孩子的值,称为小顶锥。堆排序就是利用堆进行排序的方法。他的基本思想是,将待排序的序列构造成一个大顶锥。此时整个序列的最大值就是堆顶的结点。将他移走(其实就是将与其堆数组的末尾元素交换,此时末尾元素的值就是最大值),然后将剩下的n - 1个序列的值chon重新构造成大顶锥,这样就...

2018-07-21 13:50:32 708

原创 七种排序--------希尔排序(Shell Sort)

希尔排序的基本思想是将距离某个增量的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后的结果是基本有序而不是局部有序。希尔排序算法代码如下:void ShellSort(SqList *L){ int i,j; int increment = L->length; do { increment = increment/3+1; //增量序列 f...

2018-07-21 10:01:45 412

原创 七种排序--------直接插入排序(Straight Insertion Sort)

直接插入的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录数增一的有序表。代码如下:void InsertSort(SqList *L){ int i,j,k; for(i = 2;i <= L->length;i++) { if(L->r[i] < L->r[i - 1]) //需将L->r[i]插入有序子...

2018-07-20 20:40:56 178

原创 七种排序------简单选择排序(Simple Selection Sort)

简单选择排序法就是通过 n - i 次关键字间的比较,从 n - i + 1个记录中选出关键字最小的记录,并和第 i 个记录交换。代码如下:void SelectSort(SqList *L){ int i,j,min,k; for(i = 0;i<(L->length-1);i++) { min = i; /...

2018-07-20 13:36:18 427

原创 七种排序--------冒泡排序(Bubble Sort)

冒泡排序是一种交换排序,他的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。首先做一下排序前的准备工作,看如下代码:#define MAXSIZE 10 //用于排序数组个数的最大值,typedef struct{ int r[MAXSIZE]; int length; //数组长度}SqList;void swap(SqLi...

2018-07-19 14:33:35 776

原创 腾讯笔试题--------小Q的歌单

题目描述:        小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下,请问有多少种组成歌单的方法。输入描述:    每个输入包含一个测试用例    每个测试的第一行包含一个整数,表示歌单的总长度K(1<=K<=1000).    接下来的一行包含...

2018-07-18 21:26:44 5375 2

原创 C++三种继承方式总结

1.public,protected,private标号的访问范围。public:可以被该类的函数,友元函数,子类函数访问,也可以由该类的对象访问。protected:  可以被该类的函数,友元函数,子类函数访问,但不能被该类的对象访问。private:  可以被该类的函数,友元函数访问,但不能被子类函数和该函数对象访问。2.三种继承方法继承后子类属性的变化。父类中的priva...

2018-07-18 13:36:26 6420

原创 C++三种继承方式--------保护继承(protected)

保护继承表现出来的特征在共有继承、私有继承dou'都能找到有交叉的地方。通常保护继承的子类访问父类成员的权限和公有继承的子类访问父类成员的quan权限相同,保护继承的子类对象访问父类成员的权限和私有继承子类对象访问父类成员的权限相同。具体来说,保护继承的特点是父类的所有公有成员和保护成员都成为子类的保护成员都成为子类的保护成员,并且只能被他的子类成员函数或友元访问,父类的私有成员仍然是私有的,子类...

2018-07-16 21:51:31 24470

原创 C++三种继承方式--------私有继承(private)

       私有继承与公有继承有什么区别?如果将上一篇共有继承中源代码中类B继承类A的方式改成私有继承(private),其他部分代码保持不变,编译代码,会出现一下错误信息:    从编译器指出的错误信息可以看出,父类A中的所有成员在子类对象B中都是不可见的。但是父类中的公有成员在私有继承的子类B中是可见的,可以被访问,但是其属性在子类发生降级。父类A中的public和protected...

2018-07-10 17:17:58 33578 5

原创 C++三种继承方式--------共有继承(public)

首先看一段代码(0621_3.cpp):#include <iostream>using namespace std;class A{private: int a;protect: int b;public: int c; void show() { cout << "a = " << a <...

2018-07-10 09:16:44 6282

空空如也

空空如也

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

TA关注的人

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