数据结构与算法(C++实现)
使用C++实现数据结构
荼城
普通码农
展开
-
【C++数据结构】算法:插入排序(InsertionSort)
思路构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入伪代码从第一个元素开始,该元素可以认为已经被排序; 取出下一个元素,在已经排序的元素序列中从后向前扫描; 如果该元素(已排序)大于新元素,将该元素移到下一位置; 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置; 将新元素插入到该位置后; 重复步骤2~5插入排序动图演示代码#i...原创 2020-04-02 21:18:58 · 233 阅读 · 0 评论 -
【C++数据结构】算法:递归实现全排列算法(Permutations)
思路首先对于一个给定的字符 【abcd】,很明显,最容易想到的全排列方式是先固定住a,然后把bcd给全排列,然后继续分解便是,固定住ab,把cd给全排列了,而此时的cd的全排列,便是cd位置进行调换确定函数及参数 Perm(char str[], int begin, int end),其中,str 为需要全排列的数组,begin代表数组首位,end代表这次全排列过程中,数组的最大索引...原创 2020-04-02 17:27:41 · 776 阅读 · 0 评论 -
【C++数据结构】算法:递归/迭代实现二分查找(BinarySearch)
思路假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。 数据必须采用顺序存储结构,而且表中元素按关键字有序排列代码...原创 2020-04-01 20:39:31 · 588 阅读 · 0 评论 -
【C++数据结构】算法:顺序查找(SequentialSearch)
没有排序的的数据:只能顺序查找,一个一个进行匹配速度十分慢代码#include <iostream>using namespace std;int SequentialSearch(int *list, int n, int x);int main(){ int a[] = {3,2,5,12,32,14}; int len = sizeof(a...原创 2020-04-01 17:45:48 · 395 阅读 · 0 评论 -
【C++数据结构】算法:选择排序(SelectSort)
思路从当前未排序的整数中找一个最小的整数,将它放在已排序的整数列表的最后 要点:选择排序选最小的,往左边选 冒泡排序相关博文:https://blog.csdn.net/weixin_42107311/article/details/105248680选择排序动图演示代码#include <iostream>using namespace std;voi...原创 2020-04-01 17:02:02 · 303 阅读 · 0 评论 -
【C++数据结构】最简单的算法:冒泡排序(BubbleSort)
思路 从左向右扫描数据,选择最大的数据,放在右边 要点:比较相邻的两个数,如果左边的数大于右边的数就交换 交换swap相关博文:https://blog.csdn.net/weixin_42107311/article/details/105246568冒泡排序动图演示代码#include <iostream>using namespace std;...原创 2020-04-01 16:36:21 · 257 阅读 · 0 评论 -
【C++数据结构】最基本的算法:交换(swap)
目录思路:常见误区(错误示范)C/C++的swap实现方法(传指针)C/C++的swap实现方法(宏定义)C++的swap实现方法(引用)C++的swap实现方法(模板函数)总结思路:交换算法可以类比于一杯咖啡a和一杯白开水b进行交换,交换a, b的值,需要一个中间变量temp,作为a,b交换的媒介。temp=a,a=b,b=temp实现交换// 最简单,...原创 2020-04-01 16:08:23 · 1584 阅读 · 0 评论