数据结构与算法
longbatianxia1
计算机视觉研究
展开
-
数据结构与算法C++实现10:快速排序
1 最流行的排序算法、速度最快的排序算法2 1962年,C.A.R. Hoare 发明了快速排序算法3 privot: 枢轴、枢纽4 快速排序算法是一个递归的算法5 见案例(QuickSort.cpp)//// Created by z on 20-2-16.// 快速排序代码演示//#include <iostream>using namespace std;...原创 2020-02-16 13:40:25 · 173 阅读 · 0 评论 -
数据结构与算法C++实现9:插入排序
1 低级排序 -- 冒泡排序 -- 选择排序 -- 插入排序 低级排序中最快的算法 一个数组中取一个元素作为inner排好的,然后其他元素作为outer(未排序的),声明一个temp作为临时变量。 取outer中的一个元素复制给temp临时变量,用临时变量与inner中排好的元素从高到底进行比较,如果temp 低,则与inn...原创 2020-02-15 12:16:49 · 209 阅读 · 0 评论 -
数据结构与算法C++实现8:递归的排列组合(Permutations)
1 abc 经过排列组合有八种 abc, acb, bac, bca, cab, cba2 要点:void Permutations(char* p, const int k, const int m){ // b开头的,后面跟着c所有的排列 ...原创 2020-02-14 22:36:09 · 296 阅读 · 1 评论 -
数据结构与算法C++实现7:递归的折半查找
1 递归的是神,迭代的是人 -- 迭代的折半查找 -- 递归的折半查找2 见案例(zhebanchazhao1.cpp)/** * 本案例演示递归的折半查找与迭代的折半查找 * */#include <iostream>using namespace std;// 递归的折半查找 arg1:需要查找的数组 arg2:需要查找的数组中的元素 a...原创 2020-02-14 22:24:07 · 936 阅读 · 0 评论 -
数据结构与算法C++实现6:递归算法
1 递归是神,迭代的是人2 自己调用自己3 老奶奶讲故事4 计算阶乘 -- 使用递归 -- 使用迭代(也就是循环) -- 任何使用递归来解决的问题,都可以使用迭代来解决5 见案例(digui1.cpp)/** * Created by z on 20-2-11. * 递归算法演示阶乘 * n! = n * (n - 1)! * * 5! = 5 * 4...原创 2020-02-14 22:20:16 · 170 阅读 · 0 评论 -
数据结构与算法C++实现5:二分查找(Binary Search)
1 前提是数据事先已经排好顺序2 2^20 = 100万多(就是1M) 2^30 = 10亿多(就是1G)3 有趣的例子:兰州拉面4 见案例(erfenchazhao.cpp)//// Created by z on 20-2-11.// 二分查找算法演示//#include <iostream>using namespace std;// 函数声明...原创 2020-02-14 22:16:02 · 181 阅读 · 0 评论 -
数据结构与算法C++实现4:顺序查找算法
1 顺序查找与折半查找(二分查找)2 没有排序的数据:只能顺序查找3 顺序查找:速度慢 例如:100万个数据,平均要找50万次4 见案例(shunxuchazhao.cpp)//// Created by z on 20-2-11.// 顺序查找演示//#include <iostream>using namespace std;// 函数定义 ar...原创 2020-02-14 22:10:56 · 479 阅读 · 0 评论 -
数据结构与算法动画演示
可视化数据结构:各种算法动画演示链接原创 2020-02-13 21:33:07 · 439 阅读 · 0 评论 -
数据结构与算法C++实现3:选择排序(Selection Sort)
1 从当前未排序的整数中找一个最小的整数,将它放在已排序的整数列表的最后。2 要点:选择排序选最小的放在左边3 想象:一条毛巾4 冒泡排序 与 选择排序 -- 冒泡排序选最大的放在右边,选择排序选最小的放在左边 -- 选择排序扫描一遍选出最小的,放在左边(已排序数值的右边),一遍扫描只进行一次交换,速度比冒泡排序快。5 见案例(xuanzepaixu1.cpp)///...原创 2020-02-11 15:57:33 · 208 阅读 · 0 评论 -
数据结构与算法C++实现2:冒泡排序(Bubble Sort)
1 概念: 从左向右扫描数据,选择最大的数据,放在右边; 要点:比较相邻的两个数,如果左边的数大于右边的数就进行交换;2 C++中没有求数组长度的直接函数,需要自己定义3 C++中sizeof(arr)和strlen(arr)的区别 sizeof(arr)是arr数组分配的内存分配的空间来计算 strlen(arr)是以arr数组实际占用的空间来计算的4 ...原创 2020-02-11 15:27:15 · 367 阅读 · 0 评论 -
数据结构与算法C++实现1:交换算法
1 形式 c语言中形式: void swap(int x, int y) --这个方法不行! void swap(int* px, int* py) //指针形式完成交换 define swap(x, y, t) ( (t) = (x), (x) = (y), (y) = (t)) // 宏定义形式完成交换 c++中形式: void swap(in...原创 2020-02-11 15:23:42 · 212 阅读 · 0 评论