摘要:
鸡尾酒排序又叫双向冒泡排序,是冒泡排序的一种变形。它与冒泡排序的不同处在于排序时是以双向在序列中进行排序。以数组为例 数组中的数字本是无规律的排放,先找到最小的数字,把他放到第一位,然后找到最大的数字放到最后一位,然后再找到第二小的数 字放到第二位,再找到第二大的数字放到倒数第二位。以此类推,直到完 阅读全文
摘要:
冒泡排序、选择排序是在学习排序算法时必先接触到的,作为一种简单的排序算法,它们的思路都很简单,所以就不再详细介绍了,直接看代码吧 1 #include<iostream> 2 using namespace std; 3 4 void swap(int a[],int i,int j) 5 { 6 阅读全文
摘要:
在查找数据的时候除了暴力查找外,还可可以使用二分法查找,二分法查找又叫折半查找。二分法在查找的时候效率是比较高的,但是它有 局限性,就是仅适用于顺序表,不管是升序还是降序都适用。原理就是取顺序表的中间那个元素mid,然后用中间的元素mid和待查找元素x进 行比较大小,以此改变下次的查找区间,使得下次 阅读全文
摘要:
队列和链表、堆栈一样都是一种线性结构。只不过队列的操作限定在两端,只能够在队头和队尾进行操作。它的特性是先进先出,在队尾进队头出。 队列的物理结构包括顺序存储结构和链式存储结构,也就是我们常说的顺序队列和链式队列。 这里就说一下顺序队列,顺序存储结构要预先分配内存,最好能知道队列的最大长度,在顺序队 阅读全文
摘要:
栈是一种线性的数据结构,它的操作限定在了栈顶,即只能够在栈顶进行数据的插入,删除以及其它各种操作;栈的操作特性为先进后出,下面给出 一张图来说明一下栈的入栈操作。 通过这个图,发现入栈都是在栈顶进行的,top等于base表示此栈为空栈。上面的入栈顺序为A、B、C、D,在出栈的时候由于只能在栈顶操作, 阅读全文
摘要:
链表的操作包括插入、删除、翻转、清空、判空、求链表长度等,下面分别找了链表的插入和删除操作的图,第一个是插入,第二个是删除。 在插入的时候,要先找到待插入的位置,一般是找到待插入位置的前一个位置,假如要在3号位置插入,那就找到2号位置,这样方便插入,下面 的代码中就提到了这一点,然后把新结点插入在3 阅读全文
摘要:
介绍过了头插法,再来介绍一下尾插法。假如我们现在要在链表中插入一些数据:1、2、3、4、5,并从键盘输入这些数据,最后插入到链表中的数据的顺序和输入数据的 顺序是一致的,即{1,2,3,4,5},因为尾插法每次都是在末尾部插入数据的,先插入1,此时表中数据为{1};接着在尾部插入2,此时表中数据数据 阅读全文
摘要:
要使用链表,就要先创建一个链表,这里只说单链表。先介绍一下头插法创建单链表链表。假如我们现在要在链表中插入一些数据:1、2、3、4、5,并从键盘输入这些数据, 最后数据存入到链表中是反过来的,即{5,4,3,2,1},因为头插法每次都是在头部插入数据的,先插入1,此时表中数据为{1};接着在头部插入 阅读全文
摘要:
链表和数组一样,都是一种线性表,只不过链表中逻辑上相邻的数据在物理地址上不一定相邻,因为链表占的内存并不一定是一块儿连续的内存空间, 内存单元也可能是分散的。而数组则是占一片连续的内存空间,所以逻辑上相邻的数据在物理地址上也是相邻的。链表的插入、删除效率很高,但是不支 持随机访问,要想访问某一数据, 阅读全文
摘要:
map的遍历可以通过迭代器实现,也可以用指针形式来实现,在前面已经说过了,不再重复。下面介绍一下map的常用操作 1. 判断map容器中是否存在某一关键字,用map自带的成员函数count(),参数为关键字,返回值为int型数据。 返回值为0或1,若存在返回1,不存在返回0。 2. 在map容器里面 阅读全文