win10 + Ubuntu 18.04.1 LTS (Bionic Beaver) 双系统的安装配置

前言:            由于做一个项目需要使用Ubuntu的系统,鉴于虚拟机在我的电脑上运行比较慢,所以装个双系统。也在网上搜了很多怎么配置的资料,但过程中多多少少遇到一些问题,所以这次记录一下,方便后面的人参考。   准备:        1.准备一个空的U盘。        2...

2018-11-14 10:35:15

阅读数 213

评论数 0

三路快速排序算法

 即分为  大于  等于 小于 基准值的三部分 // 递归的三路快速排序算法 template <typename T> void __quickSort3Ways(T arr[], int l, int r){ if( r &...

2018-07-22 19:39:32

阅读数 313

评论数 0

双路快速排序算法

为了解决数组中存在大量重复的元素使得在按基准值分成两部分时,重复元素都集中分到其中一部分的问题(如果两部分元素数量相差太大,快速排序算法是会退化为O(n^2)的),可以使用双路快速排序算法。     双路快速排序算法的基本思路:设置一个变量 i  从最左边开始遍历  直到找到第一个比 基准值...

2018-07-22 19:03:02

阅读数 128

评论数 0

快速排序(Quick Sort) O(nlgn)

快速排序的基本思想:    在待排序的序列中选取一个值作为一个基准值,按照其他数值与这个基准值的大小关系将这个序列划分成两个子序列(基准值会在这两个子序列的中间,划分成一边所有元素比基准值大,一边所有元素比基准值小)。这样快速排序第一次排完,我们选取的这个基准值就会出现在它该出现的位置上。这就是快...

2018-07-22 16:10:45

阅读数 85

评论数 0

堆内存和栈内存

  堆内存是用来存放由new创建的对象和数组,即动态申请的内存都存放在堆内存,并且记得在最后delete掉开辟的堆空间   栈内存是用来存放在函数中定义的一些基本类型的变量和对象的引用变量              int arr[5];                      这个...

2018-07-19 23:18:35

阅读数 22

评论数 0

自顶向下的归并排序(Merge Sort) O(nlogn)

归并排序的基本思想:           该算法是采用分治法来实现的,将原来的数组不断对半分,直到分得每个数组含有一个元素后,再一层一层归并的过程(按要求排列好)   下面就是将数组逐渐二分的过程: 对Level 3到Level2  的归并: 最后一层的归并:       ...

2018-07-19 21:13:44

阅读数 180

评论数 0

插入排序(Insertion sorting)O(n^2)

插入排序思想:(跟一张一张抓扑克牌,然后从左往右,从大到小将这张牌插入合适的一样的思想)将当前元素与之前已经拍好序的元素挨个进行比较,如果不符合条件,则将当前位置的元素与之前对比的那个元素交换位置,然后依次与前面的元素比较,直到当前元素找到合适的位置为止。   C++代码如下; void ...

2018-07-19 13:38:18

阅读数 15

评论数 0

关于debug下和release下程序运行时间不同

        Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。         Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。   例如:在VS2017中 debug模式下 将1000...

2018-07-19 13:06:58

阅读数 545

评论数 0

C/C++测试程序运行效率代码(clock函数)

         我们要使用的clock_t     clock()    CLOCKS_PER_SEC  这三个都是在 ctime(在C里应该引用time.h这个头文件) 这个头文件里,所以要包含一下这个头文件。         clock_t 在源代码中我们可以看到,它的类型为长整形(lon...

2018-07-19 11:17:27

阅读数 1338

评论数 0

选择排序(Selection Sorting) O(n^2)

选择排序的思想:从当前位置及以后未排好的元素中选出符合条件的元素(例如最小元素或最大元素),最后将这个选中的元素与当前位置的元素进行交换。 选择排序的c++代码如下(该代码适合基本的数据类型,如果是自定义类型,则需要重载符号“<”来实现排序)  template &am...

2018-07-18 14:03:03

阅读数 63

评论数 0

函数指针和指针函数

函数指针:            函数指针是一个指向函数的指针。而每个函数在编译的时候都会有个入口地址,这个入口地址就是函数指针所指向的地址。 使用方法:   如下代码: #include<iostream> //定义了个简单的两个int型整...

2018-07-18 12:26:09

阅读数 28

评论数 0

C/C++不做数组越界检查

C语言非常重视运行时的效率,所以没有进行数组越界检查,而C++继承了C的效率要求,自然也不做数组越界检查。(检查数据越界,编译器就必须在生成的目标代码中加入额外的代码用于程序运行时检测下标是否越界,这就会导致程序的运行速度下降) 例如下面这段代码: int a[2];//定义一个长度为2的...

2018-07-18 11:10:14

阅读数 1009

评论数 0

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