- 博客(13)
- 资源 (10)
- 收藏
- 关注
原创 快速排序实现原理
快速排序是对冒泡排序的改进:通过一趟排序将要排序的数据分割成独立的两份,其中一份的所有数据都比另外一份的所有数据小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,达到整个数据变成有序序列需求:排序前:{6,1,2,7,9,3,4,5,8}排序后:{1,2,3,4,5,6,7,8,9}排序原理:1、首先设定一个分界值,通过分界值将数组分为左右两部分;2、将大于或等于分界值的数据放到数组邮编,小于分界值的数据放到数组的左边,此时左边部分的元素都小于或等于分界值。而邮编部分各
2021-07-11 15:11:42
556
原创 希尔排序原理C++
插入排序的优化需求:排序前:{9,1,2,5,7,4,8,6,3,5 };排序后:{1,2,3,4,5,5,6,7,8,9};排序原理:1、选定一个增长量h,按照增长量h作为数据分组的依据,对数据进行分组2、对分好组的每一组数据完成插入排序3、减少增长量,最小减为1,重复第二步操作增长量h的确定:增长量h的值每一固定规则int h = 1;while(h<数组的长度/2){h=2h+1;}h的减小规则:h=h/2#include<iostream>usin
2021-07-11 07:50:27
200
原创 选择排序原理C++
需求:排序前:{4,6,8,7,9,2,10,1 };排序后:{1,2,4,6,7,8,9,10};排序原理:1、每一次遍历的过程中,都嘉定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他某索引处的值,则假定其他某个索引处的值为最小值,最后可以找到最小值所在的索引2、交换第一个索引处和最小值所在的索引处的值#include<iostream>using namespace std;void swap(int Arr[],int i, int
2021-07-10 21:26:30
219
原创 插入排序原理C++
需求:排序前:{ 4,3,2,10,12,1,5,6 };排序后:{1,2,3,4,5,6,10,12};排序原理:1、把所有的元素分为两组,已排序和未排序2、找到未排序的组中的第一个元素,向已经排序的组中进行插入;3、倒序遍历已经排序的元素,依次和代插入的元素进行比较,直到找到一个元素小于等于带插入元素,难么就把代插入元素放到这个位置,其他的元素向后移动一位。```cpp#include<iostream>using namespace std;int main()
2021-07-10 20:47:44
231
原创 索引优先队列
步骤一:存储数据时,给每个数据元素关联一个整数,eg:insert(int k,T t) ,k是t关联的整数,通过k快速获取到队列t元素用一个T[]items数组来保存元素,在intsert(int k,T t)完成插入时,把k看作item数组的索引,把t元素放到item数组索引k处,根据k获取元素t时直接拿到item[k]存放:[“S”,“O”,“R”,“T”,“E”,“X”,“A”,“M”,“P”,“L”,“E”]T[]items:用来保存数据元素:0 1 2 3 4
2021-07-10 16:46:19
102
原创 利用开发人员提示工具查看对象模型
1、跳转盘符到目标盘2、跳转到目标具体路径下 cd:3、查看命名文件4、cl /d1 reportSingleClassLayout类名 文件名eg:cl /d1 reportSingleClassLayoutSon “code01.cpp”注:cl和/之间有空格,cl为C,L;d1为d,1。
2021-06-08 08:05:52
93
原创 无法启动程序,未找到MSVCR100D.dll、MSVCR100.dll
MSVCP100D.dll,即MicroSoft Visual c++ ,100是版本号,D表示在Debug模式下的文件MSVCP100.dll,是在Release模式下文件出现上面的情况就将模式更改一下试试,如果都不行再进行下载放到相应位置msvcp100d.dllmsvcr100d.dll这两个文件放入系统盘:C:\Windows\SysWOW64...
2021-06-02 16:21:32
542
原创 atomicAdd、threadIdx、blockDim、blockIdx未定义标识符
threadIdx、blockDim、blockIdx未定义标识符这时直接运行程序看看是否可以运行,能运行就不用管不能运行加头文件 #include “device_launch_parameters.h”atomicAdd未定义标识符,同上,当不能运行时加头文件 #include “sm_20_atomic_functions.h”...
2021-06-02 15:02:36
5104
2
原创 裁剪算法——中点分割算法/Liang-Barsky算法
三、中点分割法首先对直线段的端点进行编码。【核心思想:通过二分逼近来确定直线段与窗口的交点。】具体方法:1、若中点不在窗口内,则把【中点】和离窗口边界【最远点】构成的线段丢掉,以线段上的另一点和该中点再构成线段求其中点。2、如果中点在窗口内,则又以中点和最远点构成线段,并求其中点,直到中点与窗口边界的坐标值在规定的误差范围内想等。【问题】中点分割算法会不会无限循环二分下去?由于屏幕像素是有限的而且会规定误差范围,一般计算次数不会太多。四、Liang-Barsky裁剪算法——>【基本
2021-05-25 17:21:07
3772
原创 裁剪算法——Cohen-Sutherland算法
一、直线裁剪算法1、裁剪:计算机内部存储的图形往往比较大,而屏幕显示的只是图形的一部分,因此需要确定图形哪些部分落在显示区之内,哪些落在显示区之外,这个选择的过程就称为裁剪。1.1点的裁剪——>此方法太费时,效率比较低,一般不可取。对于任意一点P(x,y)若满足下列不等式,则点P在矩形窗口内1.2直线段的裁剪——>复杂图形裁剪的基础要裁剪一条直线段,首先要判断此直线的位置:1)它是否完全落在裁剪窗口内?2)它是否完全在窗口外?3)如果不满足以上两个条件,则计算它与一个或多个裁剪
2021-05-25 17:10:58
8428
原创 错误 MSB3721
错误 MSB3721 命令““C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe” -gencode=arch=compute_30,code=“sm_30,compute_30” --use-local-env -ccbin解决方案:新建一个CUDA工程,在kernel.cu里将写好的程序代码放进去重新运行...
2021-04-12 21:29:01
1937
1
原创 GDAL库(c++版)栅格API教程
**栅格API教程**1. 打开文件在打开GDAL支持的栅格数据存储之前,必须注册驱动程序。每个支持的格式都有一个驱动程序。通常这是通过 GDALAllRegister() 函数,该函数尝试注册所有已知的驱动程序,包括使用 GDALDriverManager::AutoLoadDrivers() . 注册,申请应调用独立 GDALOpen() 函数打开数据集,传递数据集的名称和所需的访问权限(GA_ReadOnly只读或GA_Update)。#include "gdal_priv.h"#incl
2021-03-31 10:41:44
5465
原创 VS2019 c++配置GDAL、PROJ6和SQLite
VS2019c++配置GDAL、PROJ6和SQLite1.准备GDAL官方下载地址为 官网PROJ6的官方下载地址为 官网SQLite3的官方下载地址为官网将下载的文件分别解压到GDAL、PROJ、SQLite文件夹内2.编译和安装2.1编译SQLite静态编译SQLite库(1)解压将下载好的两个文件sqlite-amalgamation-xxxxxxx.zip、和sqlite-dll-win32-x86-xxxxxxx.zip解压到SQLite文件夹内,如下所示:sqlite-
2021-03-28 09:41:15
1335
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人