自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

转载 各种排序算法的稳定性和时间复杂度小结

选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 冒泡法:  这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:  复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复杂度log2(n)*n,所

2016-06-13 14:42:23 341

原创 选择排序

//*****************************选择排序****************************//NOTE:当无序区间只有一个数时,已排好序voidSelectSort(int*a,size_tsize){                assert(a);                for(intinde

2016-06-12 17:52:46 222

原创 插入排序

思路写的比较少,不太懂的可以看后面的图//************************插入排序****************************//思路:看每个数据的位置十分正确,如要排从小到大的数,则要看它后面的数是否比当前数据大voidInsertSort(int*a,size_tsize){

2016-06-11 20:44:47 238

原创 面试题:给40亿个不重复的无符号整数,没排过序,给一个无符号整数如何快速判断这个数是否在这40亿个数中

//**********************位图***********************//腾讯面试题:// 给40亿个不重复的无符号整数,没排过序,给一个无符号整数如何// 快速判断这个数是否在这40亿个数中//解题思路://(1)直接存进内存//40亿个无符号数,如果放到内存,就需要开辟4*4G=16G的空间,因为数的范围不确定,所以//开辟尽可能大的空间来存放,需42亿9千万×4字

2016-06-11 11:58:02 5387

转载 对堆栈的认识

什么是堆和栈,它们在哪儿?问题描述编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)? 1、在通常情况下由操作系统(OS)和语言的运行时(runtime)控制吗? 2、它们的作用范围是

2016-06-10 11:40:05 267

转载 初识C++之继承

1、何为继承  C++中所谓继承,就是在一个已存在类的基础上创建一个新的类,新类获得已存在类的部分特性(为什么是部分特性,后面会讲到)。已存在类被称为基类(Base Class)或父类(Father Class),新建类被称为派生类(Derived Class)或子类(Son Class)。  继承的声明形式: class 派生类名:[继承方式] 基类列表 {   派生

2016-06-10 11:38:26 244

转载 初识C++之虚函数

1、什么是虚函数   在基类中用virtual关键字修饰,并在一个或多个派生类中被重新定义的成员函数,用法格式为:   virtual 函数返回类型 函数名(参数表)    {     函数体    }    虚函数是实现多态性的关键,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。    看两个例子: ①没有定义基类的Fun函数为虚函数:#d

2016-06-10 11:35:20 392

原创 C初级阶段练习题目(三)

//***********************21、求一个3*3矩阵对角线元素之和**********************intmain(){                inti, j;                intsum1 = 0;                intsum2 = 0;                i

2016-06-09 20:04:27 320

原创 堆排序

建大堆实现的是从大到小的排序若要从小到大排序,则建小堆//******************堆排序***************************void_AdjustDown(int*a,size_t size,intparent){                intchild =parent* 2 + 1;      

2016-06-05 17:25:05 213

原创 100w个数中找出最大的前k个数

//*******************100w个数中找出最大的前k个数***************************//挨个遍历排序:100w个数太多,内存不够,而且遍历排序效率太低//建大堆:只能选出最大的那个数//可选方案:建K个数的小堆//          首先取这100w个数中的前K个数建立最小堆,即长度为K的数组的首元素为最小的元素//         

2016-06-05 17:19:57 1325 1

原创 建大堆实现优先级队列

建大堆实现优先级队列,优先级为从大到小建小堆实现的优先级队列,优先级为从小到大****************************************************************************************************本文章中写建大堆实现优先级队列//******************************大堆**

2016-06-05 17:15:14 438

原创 查找字符串中第一个出现只出现一次的字符

//*****************查找字符串中第一个出现只出现一次的字符******************//方法一:从头开始扫描这个字符串中的每个字符,当访问到某字符时拿这个字符和后面的每个字符//       相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符,时间复杂度O(n*n)//方法二:利用哈希表存储字符出现的次数,第一次扫描数组时,每碰到一个字符,在

2016-06-05 17:13:53 941

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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