三种排序(n2)的缺点及优化
冒泡排序
-
假如有n个元素,需要进行n - 1 趟,每趟进行完应该判断是否已经有序,可以减去不必要的操作。
-
操作方法:每一趟设置一个标志位,如果有元素的移动,标志位改变。反之就可以看出该序列已经有序。
选择排序
-
每一趟只会把最小元素放到前边。效率比较低。
-
操作方法:从两边开始移动,同时比较出最大值和最小值。
插入排序
-
查找的时候效率低而且每次只能插入一种元素。此外移动也比较麻烦。
-
操作方法:查找—二分法 移动—链表化 插入—希尔排序
-
希尔(shell)排序本质也属于插入排序的一种,它是第一个突破(n2)的排序算法。
跳出多层循环的方法
-
在一个函数中,exit()和return()。
-
break—flag
-
设置相同变量接管循环
-
在内层修改外部循环条件
-
goto—loop
基础知识
文件
- *.vbs 是vb的脚本语言。
- *.bat 是批处理文件。
- *.ink 是快捷方式。
- *.ini 是初始化文件,可以用记事本打开。
- 注册表是重要的系统数据库,可以在命令中输入regedit 管理。
- DLL 是动态链接库,是一个包含可由多个程序,同时使用的代码和数据的库。*.sz 代表以0 结尾的字符串。
- API 是交互式的函数接口。
- 哈希表是输入一个数据返回一个整数。是根据关键码值(Key value)而直接进行访问的数据结构。对不同的关键字可能得到同一散列地址,即k1≠k2,而f(k1)==f(k2),这种现象称为冲突(英语:Collision)。通过散列函数,数据元素将被更快地定位。可以使用生成哈希和时间戳的和的密码函数进行文件判定。如MD5值
朝花夕拾
-
编译:compile 编译是将源代码转换成目标代码的过程。解释 translate 将源代码逐条转换成目标代码,同时逐条运行目标代码的过程。
-
随着Java,Python等基于虚拟机的语言(JAVA 虚拟机 (JVM),Python虚拟机_(PVM))的兴起,我们又不能把语言纯粹地分成解释型和编译型这两种。
-
Debug称为调试版本,编译的结果通常包含有调试信息,没有做任何优化,方便开发人员进行调试,Release称为发布版本,不会携带调试信息,同时编译器对代码进行了很多优化,使代码更小,速度更快。
-
Debug 所分配的内存更大,因为要有前后调试信息的部分。而且对于未初始化的变量,Debug模式下会默认对其进行初始化,而Release模式则不会。
-
python中 **%**是取模,而在Java,c 是 取余。
-
路径正左反右,Linux系统和网址上用正,Windows系统用反斜杠。
注意要点
-
指针不需要及时变为空指针。
-
适当的空行与tab 更加美观。
-
if(0 == x) -
switch注意有无break。
-
逻辑和关系运算符多使用。
博客介绍了冒泡、选择、插入三种排序(n2)的缺点及优化方法,如冒泡排序设标志位判断是否有序,选择排序从两边移动找最值等。还提及跳出多层循环的方法,以及文件类型、编译解释区别、哈希表等编程基础知识和注意要点。

395

被折叠的 条评论
为什么被折叠?



