自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++、C#、java算法学习日记07----堆排序(HeapSort)

根据上一篇 堆排序思想   这一篇我们用C++、C#、java 代码来实现它,要求对10000个随机数进行升序排列。C++实例:#include#include#includeusing namespace std;//调整堆void HeapAdjust(vector &array,int i,int nLength){ int Child; fo

2015-11-05 22:47:17 973 1

原创 C++、C#、java算法学习日记06----堆排序思想(HeapSort)

上一篇所学的 希尔排序  是对插入排序的一种高效优化,而堆排序则是对选择排序的一种高效优化,也属于选择排序的一种,所以他的基本思想同 直接选择排序 一样也就是每次从数列中选出最大或最小的放到末尾或是开头,但是堆排序的选择过程要比 直接选择排序  的选择过程高效的多,采用了树形结构来记录每次的比较结果(可以省略重复的比较),大值总是作为父节点(最终形成大根堆),或是小值总是作为父节点(最

2015-11-04 21:44:37 1357 1

原创 java希尔排序

在上一篇 C++、C#、java算法学习日记05   中由于电脑出了点问题java启动不了,这一篇我补上:希尔排序java实例:package Sort;import java.util.*;public class Sort5 { public void ShellSort(List array){ int Length=array.size();//获取长度

2015-11-02 12:29:22 1453

原创 C++、C#、java算法学习日记05----希尔排序(ShellSort)

希尔排序是插入式排序的一种,也称缩小增量排序,是对 直接插入排序  的一种更高效的改进算法,基本思想:     希尔排序是把记录按下标的一定增量(也就是按一定的步长)分组,对每组使用直接插入排序算法排序;随着增量逐渐减少(每循环一次减半),每组包含的关键词越来越多,当增量减至1时(相当于一次直接插入排序),整个文件恰被分成一组,算法便终止。     我是这么理解的,希尔排序可以说是

2015-11-01 18:14:25 1479 2

原创 C++、C#、java算法学习日记04----二分插入排序

经过上几篇对排序算法的了解,我们发现,所谓的排序也就是确定一个数组中每个元素的位置,然后对号入座,其过程也就是找到该元素的位置。确定位置,使用二分法可以达到很高的效率,我们将他应用到插入排序中就算是对上篇中排序的一种优化,能提高效率。基本思想:        与上篇中的插入排序类似分已排序和未排序部分,然后将未排序  部分元素逐个插入,但是插入的过程不同,需要每次求一个 中间位置,和中间位

2015-10-30 17:22:06 2063 2

原创 C++、C#、java算法学习日记03----插入排序

有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法---插入排序。插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。基本思想:     每一步将要插入的数与前面有序序列中的元素依次相比较,找到合适的位置后,数列部分后移腾出空间,待插入

2015-10-29 19:56:06 934

原创 C++、C#、java算法学习日记02----选择排序(SelectSort)

直接选择排序属于排序算法的一种,他的排序速度要比冒泡排序快一些,算是对冒泡排序的一种改进。基本思想:     直接排序的思想类似于我们实际生活中的排序行为,比如:对一串数字 63,4,24,1,3,15从小到大排序,我们会首先找到最大的值与最后一位交换位置,然后再从余下的数中找到最大的值与倒数第二位交换位置,这样每次都从余下的数中找到最大的放到末尾,当余下一个数时排序完成C++实例:

2015-10-29 14:11:39 1783

原创 C++、C#、java算法学习日记01---冒泡排序(BubbleSort)

“活到老,学到老”,人生正是一个不断学习,不断完善的过程,前面的 C#学习日记  我们先告一段落(不是结束^_^),现在开始新的旅程,学一学算法吧!    回想我门学C的时候,在老师的带领下我门接触到了算是我人生中的第一个算法——冒泡排序(BubbleSort)。    顾名思义,冒泡排序它排序数组元素的过程总是将小数往前放、大树往后放,类似水中气泡往上升的动作。基本思想:    

2015-10-29 09:53:07 1437

原创 C#学习日记30---泛型类、泛型方法、泛型委托

泛型允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,在声明类或方法的时候由于不知道用户要传入什么样类型的参数,所以在传入类型的地方“挖一个坑(“<T>”)",使用它的时候我们再用具体数据类型填上。泛型类:  根据前面所学知识我们定义一个类:  class Data          {              public int

2015-10-23 21:57:59 4968 2

原创 C#学习日记29----二维索引器 与 foreach遍历索引器

上一篇结尾的时候我留下了几个问题,因为要断电了没有解决,这一篇我们继续上一篇的内容。点这里回到上一篇问题1:        数组有多维度的,索引器也可以是多维的吗???         索引器可以是多维的,上一篇中我们定义的索引器只是一维索引器,同数组一样可以定义多维索引器。比如我们索引电影院的一个放映室的座位号,第一排第一列为1号,一排2列为2号……如下:using Syst

2015-10-21 19:37:59 3034

原创 C#学习日记28---索引器、重载索引器

索引器允许类或者结构的实例就像数组一样进行索引,当您为一个类定义一个索引器时,这个类就会像一个数组一样,您可以使用数组访问符 '[]' 对该类的实例进行访问.. 索引器与属性  类似,但是索引器要采用参数,(也可以这么认为,索引器是一个类的属性,同样也是通过访问器(一种特殊的方法) 实现的)    为了更清楚一点,还是举个例子吧,  大学是人生中最悠闲的时光,同学们可以做许多自己曾经想做而

2015-10-20 22:39:04 4720

原创 C#学习日记27----属性

属性可以是 类(class)、结构(struct)、接口(interface)的命名成员,他提供灵活的机制来读取、写入、或计算私有(private)字段的值,属性可以看作是公共(public)字段的成员,但他实际上是定义了一个“访问器”的特殊方法让私有字段的值可以被读写或操作。   说的形象点吧,比如我们定义一个person类里面有一个私有成员 private string name; 在外界

2015-10-20 16:51:03 1636 3

原创 C#学习日记26---接口(interface)类型

接口包含类或结构可以实现的一组相关功能的定义例如,使用接口可以在类中包括来自多个源的行为。由于C#语言不支持多重继承,但是可以通过接口来实现多重继承  。简言之,接口只包含了成员(属性、事件、索引器)的声明。成员的定义具体怎么实现由他的派生类决定。 声明一个接口:    接口使用interface 关键字声明,它与类的声明类似。接口声明默认是 public 的,接口不能包含常量、字

2015-10-19 12:27:02 2172 3

原创 C#学习日记25---匿名方法 与 Func委托 与 lambda表达式

在 2.0 之前的 C# 版本中,声明委托的唯一方法是使用命名方法。C# 2.0 引入了匿名方法(委托),而在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方法,作为编写内联代码的首选方式。匿名委托(方法):       匿名委托的叫法并不准确,准确的应该叫做匿名方法,(总之两者是一个意思啦)。前面  委托类型  中我已经提到过,委托是用于引用与其具有相同标签的方

2015-10-18 14:35:04 4681 2

原创 C#学习日记24----事件(event)

事件为类和类的实例提供了向外界发送通知的能力,实现了对象与对象之间的通信,如果定义了一个事件成员,表示该类型具有 1.能够在事件中注册方法(+=操作符实现)。 2.能够在事件中注销方法(-=操作符实现)。 3.当事件被触发时注册的方法会被通知(事件内部维护了一个注册方法列表)。委托(Delegate)是事件(event)的载体,要定义事件就的要有委托。  有关委托的内容请点击委托(De

2015-10-14 19:32:16 1912 5

原创 C#学习日记23---多态性 之 运算符重载、方法重载、抽象类、虚方法

在C#中多态性的定义是:同一操作作用于不同类的实例,不同的类进行不同的解释,最后产生不同的执行结果。换句话说也就是一个接口,多个功能。C# 支持2种形式的多态性: 编译时的多态性、运行时的多态性编译时的多态性:   编译时的多态性是通过重载来实现的方法重载   您可以在同一个范围内对相同的函数名有多个定义。函数的定义必须彼此不同,可以是参数列表中的参数类型不同,也可以是

2015-10-12 19:49:10 1830 1

原创 C#学习日记22---多重继承

继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类来定义一个类,一个类从另一个类派生出来时,派生类从基类那里继承特性         继承的思想实现了 属于(IS-A) 关系。例如,哺乳动物属于(IS-A) 动物,狗 属于(IS-A) 哺乳动物,因此狗 属于(IS-A) 动物。基类与派生类:    C#中派生类从他的直接基类继承成员,方法、属性、域、事件

2015-10-12 18:44:51 3406 1

原创 C#学习日记21----封装 与 访问修饰符

封装:       被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。也就是把里面实现的细节包起来,这样很复杂的逻辑经过包装之后给别人使用就很方便,别人不需要了解里面是如何实现的,只要传入所需要的参数就可以得到想要的结果。封装使用访问修饰符 来实现。一个访问修饰符 定义了一个类成员的范围和可见性。 访问修饰符:

2015-10-12 18:28:59 1100

原创 C#学习日记20----static静态变量 与 常量

在上一篇 委托(Delegate)类型    中我定义public方法的时候使用了 static 关键字,导致后来无法通过 对象.方法名  的形式访问此方法,这一篇我们就具体学习下 static 静态变量。 变量:      在学习static静态变量之前,我们还是有必要来了解 变量 的意义。程序要对数据进行读、写、运算等操作,当需要保存特定的值或结果的时候就需要用到变量,在用

2015-10-11 11:25:22 4910

原创 C#学习日记19----引用类型 之 委托(Delegate) 类型

对于代表(委托也是它)delegate类型的意义,前面 引用类型前言 (点击查看)  中已经介绍过了,这里就不再罗嗦了,简言之,委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,说白了就是可以把方法当作参数传递。所有的委托(Delegate)都派生自System.Delegate 类。          (好像不太明白)打个比方吧,室友 HC555 是个LOL

2015-10-10 16:40:41 2606 1

原创 C#学习日记18----装箱(boxing)转换与拆箱(unboxing)转换

经过前面的学习,我们基本能够实现值类型与值类型之间的转换,引用类型与引用类型之间的转换,但是值类型与引用类型(object)之间的转换又该怎么实现呢??   在C# 中,我们采用装箱来实现将值类型转换成引用类型,用拆箱实现将引用类型转换成值类型;换句话说,它可以实现从任何值类型、引用类型到Object类型之间的转换,有了装箱与拆箱对任何类型来说我们都可以看作object 类型  (有关ob

2015-10-09 13:54:52 1281

原创 C#学习日记17---显示类型转换具体用例

在C#的类型转换中,除了上一篇中介绍到的 隐式类型转换 外还有一种需要我们声明的类型转换-----显示类型转换.      显示类型转换,又叫强制类型转换,在进行转换的时候它需要我们明确的指定转换类型.  比如,当我们把long类型转换为int类型时,由于这种转换是丢失精度的转换,系统不会自动进行隐式转换,所以需要进行强制转换:                  long l = 60

2015-10-08 18:37:53 1083 1

原创 C#学习日记16---引用类型 之 数组

有关数组的定义我已经在    C#学习日记12---引用类型  中说到过了,这里就不罗嗦了,总的说来 数组 就是一组类型相同的有序数据,System.Array类是所有数组的基类,(好比 System.object 是所有类的基类一样)。声明一个数组:          int[] arr;  //这里我们只是声明了一个数组,没有初始化,还不能用。比如arr[0] = 1会

2015-10-06 21:17:48 940

原创 C#学习日记16----隐式转换具体用例

前面的学习与练习中我经常会用到一些类型转换,这里就具体的说说。隐式转换:         隐式转换是系统默认的转换,不需要申明就可以进行转换。在隐式转换过程中,编译器无需对转换进行检查就能够安全的执行转换,比如从int类型转到long类型,就是隐式转换。隐式转换一般不会失败,转换过程中也不会丢失信息.   比如:int i = 100;             long a = i

2015-10-06 20:28:41 1387

原创 C#学习日记15----引用类型 之 string类型用法总结

C#中定义了一个基本的类string,专门用于对字符串的操作,同样这个类也是在.Net框架结构的名字空间System中定义的,是System.string的别名。字符串的用法十分广泛,在类的定义中封装了许多内部的操作,我们只需要简单的利用就可以了。创建一个string对象:       string + 对象名 (很简单就不多说了,重点说说他的用法) string的用法实例: 

2015-10-06 16:35:35 1153

原创 C#学习日记14---引用类型 之 object类

先让我们了解下什么叫object类Object类:       object类是所有类型的基类,所有类型都是由他派生而来,C#中所有的类都是直接或间接的从Sytem.Object类中继承,(可能有点迷糊,没关系,举个例子,如果Object类是树干,我们前面所学的所有类就是 树枝 或者 树叶 了懂了吧)。因此,对Object类型的变量可以赋予任何类型的值。 定一个Object变量

2015-10-06 10:02:09 3834 1

原创 C#学习日记13---类(Class)的声明与定义

类作为面向对象的灵魂,在C#中有着相当广泛和深入的应用,对类的深度掌握自然是我们学习C#重要的一个环节.有关类的意义上一篇  C#学习日记12---引用类型 中已经给出了,这里就不再重复了.说到 类 就不得不说下与之息息相关的内容----对象.类与对象:            类:  从具有相同属性的事物当中抽象出来的概念,一般用来描述同类个体的集合。    对象: 从类当中具

2015-10-05 21:14:02 5649 4

原创 C#学习日记12---数据类型 之 引用类型(前言)

前面我们学习完了C#中简单的数据类型----值类型,后面学习C#中另一个数据类型----引用类型, "引用" 这个词在这里的意思是,该类型的变量不直接存储所包含的值,而是指向他所要存储的值,也就是说 引用类型储存的是变量的地址 。C#中的引用类型有4种:    类 代表 数组 接口     在这里我先大致的介绍下各自的意义与定义的方式,后面我会具体写

2015-10-05 14:32:05 1064

原创 C#学习日记11---数据类型 之 枚举(enum)类型

前面我所介绍的全都是值类型 ,写这么多了,我总结以下什么叫值类型 。简单的说,该类型的变量直接存储所包含的值。这里我们与C语言中的字符串相对比一下,char ch[6] = "HC666"; 老师说过这里其实是用ch来引用“HC666”的地址,通过访问地址来访问数据。string也是一样,因此C#中的字符串 String 就是引用类型,而不是值类型。struct 类型也是如此,通过直接

2015-10-05 09:30:13 2039 2

原创 C#学习日记10----番外篇 C语言进制转换

在 C#学习日记08---字符类型  中我遗留 了一个问题:如何用C写一个进制转换程序。  现在我将这个后遗症给铲除掉: #includeint main(){ printf("请输入一个十进制数:"); int a; scanf("%d",&a); printf("十进制 %d 的十六进制是: %x\n",a,a); // %

2015-10-04 21:03:02 925

原创 C#学习日记09---数据类型 之 结构(Struct)类型

数值类型 之 结构类型(struct类型):     经过对前面简单类型的学习,我们在进行一些常用的数据运算、文字处理,似乎已经够了,但是当我们碰到一些复杂的数据类型时,比如,班级管理系统中要录入每个学生的姓名、年龄、电话号码、地址。如果按照我们前面所学的简单数据类型来处理,每录入一个学生的信息就要用4个不同的变量来存储,这样工作量就太大了,而且还不直观,很容易混淆。    在C/C+

2015-10-04 16:36:36 1483

原创 C#学习日记08---数据类型 之 字符类型

数值类型 之 字符类型:     计算机处理的信息中除了数字以外,主要就是字符了,字符包括数字字符、英文字符、表达式符号、等等;C#提供的字符类型按照国际上的公认标准,采用Unicode字符集,一个标准的Unicode字符长度为16位,用它可以表示世界上的很多语言。C# 中给字符变量赋值与C/C++类似:     Char ch = 'H';  有时候当我们录入人的姓名的时候也用的 C

2015-10-03 20:03:57 972

原创 C#学习日记07---数据类型 之 decimal类型

值类型之 十进制类型:   C#专门为我们定义了一种十进制类型(decimal)(以前的C/C++是没有次类型的),主要用于金融或贷币方面的计算。十进制类型是一种高精度、128位数据类型,能保留28或29位有效数字,(double 只有15或16位,上一篇中已经试验过了),虽然它取值的范围要比double小的多,但是要比double精确的多。  当定义一个decimal变量并赋值给

2015-10-03 16:54:18 1851

原创 C#学习日记06---数据类型 之 浮点数类型

数值类型之浮点数类型:  在我们的日常生活中不仅有整数 ,还存在小数,在C#中小数有2种数据类型来表示  (单精度)float 、(双精度)double。他们的差别在于取值范围与精度不同,计算机对浮点数的运算速度大大低于对整数的运算速度,对double型的运算速度低于对float的运算速度,如果在程序中大量的使用双精度类浮点数,将会占用更多的内存单元,而计算机的处理任务也会更加繁重,但是用

2015-10-03 15:20:09 3973

原创 C#学习日记05---数据类型 之 布尔类型

值类型之布尔类型:   布尔类型是用来表示 '真' 和 '假' 这两个概念的,虽然看起来很简单,但实际用法十分广泛.我们知道,计算机是用二进制来表示各种数据的,在它 的内部只有0或者1.布尔类型表示的逻辑变量只有2中,True 或 False.  在这里我们对比下C/C++,布尔类型在C/C++中的意义与C#一样,表示 ‘真’ 或 ‘假’这两个值,0表示的是 ‘假’其他非0的数字表示

2015-10-03 14:49:18 3109

原创 C#学习日记04---数据类型 之 整数类型

上一篇中我们初步的了解了一些数据类型,不全面,本着认真求实的精神,我再对数据类型梳理 一下。值类型之整数类型:      整数类型数据类型特征取值范围sbyte 8位有符号整型-128~127之间byte 8位无符号整型0~255之间short16位有符号整型-32768~32767之间

2015-10-03 12:13:10 1155

原创 C#学习日记03---数据类型

C#数据类型     C#语言是一种强类型的语言,在程序中用到的变量、表达式、数值等都必须要有类型。对于程序中每一个用于保存信息的量,使用时我们都必须声明他的数据类型,以便编译器为他分配内存空间。C#的数据类型可以分为两大部分:值类型和引用类型。     由于C#强类型的特点,因此在C#中一种数据类型也就是一个类。比如 整型 int他的真名为System.Int32();

2015-10-02 18:52:23 987

原创 C#学习日记02--输入与输出

经过上篇的学习,已经对C#有了一个初步的认识,能够在vs2010中创建控制台应用程序,记得我刚开始学习C的时候老师也是这样教我们的,接下来就学习C#的输入与输出。      C#的输入与输出其实是引用System定义好的Console.类型,            输入:  Console.ReadLine()    (读入一行String类型的字符串以回车键结尾),

2015-10-01 19:26:02 1174 1

原创 c#学习日记01--新手上路

今天是10月1日,祖国成立66周年,热烈祝贺我们的祖国繁荣昌盛,人民安居乐业!!!        对于c#(sharp)说实话我也是刚开始自学,大二了我的主修其实是java,但是c#我也不会落下,从今天开始踏上自学c#之路!一:认识C#与.NET       .NET/dotnet:一般指.Net Framework框架。是一种平台,一种技术。       C#:一

2015-10-01 11:21:43 1984

空空如也

空空如也

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

TA关注的人

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