C++
阿柏川
这个作者很懒,什么都没留下…
展开
-
03插入法排序
插入法排序有个例子讲的形象,比如玩扑克牌,插入排序可以用打牌时对摸起的牌根据牌的点数来对其进行插入排列来描述。可以把左手中的牌比做已经摸起的牌,即已经被排列好的牌,左手可以容纳的牌数的空间可以假想为和要摸的牌的总数相同;而在桌子上的那部分没摸的牌则是未被排序的牌,这二者的关系可以抽象为数组中已经被排序好的部分和未被排序好的部分。一开始摸起的第一张牌不需要排序,可以认定其为已排序的牌。然后摸第二张牌...原创 2018-08-13 09:12:59 · 154 阅读 · 0 评论 -
02选择排序算法C++
选择排序算法是每次从数组中找出最小元素,第一趟找出的最小元素放到数组首位置,然后从数组的第一个元素开始再次寻找剩余元素的的最小值,找到后放到数组的第一号位置,依次循环查找: 具体代码如下所示: #include <iostream> using namespace std; void print(int *a, int n) { for (int i = 0; i < ...原创 2018-08-12 20:19:49 · 109 阅读 · 0 评论 -
01冒泡排序算法C++
冒泡排序算法是一种简单的排序算法,该算法的思想就是将元素进行两两互相交换的过程,比如有一个10个元素的数组,用冒泡排序的步骤有: 1、先判断第0个元素与第一个元素之间的关系,如果第0个元素比第一个元素小,那就两个元素的位置不动,如果第0个元素比第一个元素大,那就就将两个元素互换位置。 2、然后再用上面排序好的第一个元素与第二个元素进行比较,一直比较到最后一个元素,通过该种方法比较出来的第一次循...原创 2018-08-12 19:17:11 · 345 阅读 · 0 评论 -
08各种排序算法复杂度比较
各种排序算法时间复杂度 各种排序算法比较 各种常用排序算法 类别 排序方法 时间复杂度 空间复杂度 稳定性 复杂性 特点 最好 平均 最坏 辅...转载 2018-08-14 14:48:40 · 234 阅读 · 0 评论 -
07堆排序算法
该二叉树是完全二叉树,完全二叉树因为堆这种高效的算法才显得完全二叉树如此重要。 堆具有以下性质的完全二叉树 大顶堆的根节点值比左右节点值都大 小顶堆的根节点值比左右节点值都小 实现: 1、初始完全二叉树 要从小到大排序,需要构造大顶堆,从最底层开始构造比如0 7 4 需要将0和7换一下位置,此时就变成了 第二步会对6 9 7 进行构造变成 第...转载 2018-08-14 14:40:59 · 103 阅读 · 0 评论 -
06归并法排序
归并法排序是一种稳定的排序算法,归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并过程如图所示 归并过程为:比较a[i]和a[j]的大小,若a[i]≤a[j],则将第一个有序表中...原创 2018-08-14 12:45:16 · 307 阅读 · 0 评论 -
05快速排序
快速排序可以看成是插入排序的改进,是一种分治的排序算法,通过找到一个枢轴元素作为对比元素,将整个数组中大于枢轴元素的值放到枢轴元素的右边,小于枢轴的元素放到枢轴元素的左边,这样就从一个数组分成了两个数组(即左边所有的元素都小于等于它,右边的元素都大于等于它),然后再对分好的两个数组按照相同的方法进行划分。进而递归求接左右的子数组。 求解两个数组的步骤如下面的示意图:快速排序是一种不稳定的排序 ...原创 2018-08-14 11:29:09 · 114 阅读 · 0 评论 -
4、三目运算符的加强,可以作为左值
#include <iostream> using namespace std; int main() { int a = 10; int b = 20; int var = 100; var = 101; //返回一个最小数,并且给最小数赋值成3 //在C中,表达式不可以作为左值,但是在C++中,三目运算符是一个表达式, //是可以作为左值的,因为三目运算符最终返回的是...原创 2018-06-04 19:51:27 · 498 阅读 · 0 评论 -
4、C++中的bool类型
在C++中声明一个bool类型的变量,相当于告诉编译器分配一个字节的内存#include <iostream> using namespace std; void main() { bool b1 = true;//告诉c++编译器分配一个字节的内存 bool b2, b3, b4, b5; cout << "sizeof(bool)" << sizeof...原创 2018-06-04 19:42:47 · 320 阅读 · 0 评论 -
3、C++中关于C中的语法的加强
1、在C++中变量的定义可以定位在变量使用前的任何位置,在c中变量的定义必须在程序的开始下面的程序中在c中编译时会出错,因为变量k没有在程序的运行的时候就进行定义,在c++中就可以正常运行。int main() { int i; printf("hello world"); int k; i=0; k=10; printf("i%d k%d \n",i,k); system("pause"); r...原创 2018-06-04 19:33:51 · 124 阅读 · 0 评论 -
04希尔排序
希尔排序是一种插入法排序的一种改进版本,同时要知道希尔排序是一种非稳定的排序算法,非稳定排序是值当有两个相同值在进行排序的时候,可能会引起位置调换。 希尔排序的思想是: 先取一个小于n的整数d作为增量,将所有元素进行分组,所有距离为d的倍数的记录放在同一个族中,先在各组中进行直接插入排序,然后再取第二个整数d2作为增量进行分组和排序,一直到增量为1的时候,再进行最后一次排序,这样...原创 2018-08-13 12:44:59 · 109 阅读 · 0 评论