|
分享例程
界面截图: |
|
备注说明: |
- |
本帖最后由 hez2010 于 2016-2-6 11:13 编辑
这个本来我在易语言论坛上发了,但是,易语言论坛经常抽风打不开,干脆发到这里来。
正文开始---------
易语言官方支持库以及网上流传的很多模块中的很多命令或数据结构仅仅是实现了功能,但是并不怎么高效,再有就是有人将本来时间复杂度就高的算法使用汇编进行优化,然并卵,O(n^2)的复杂度和O(nlogn)的复杂度根本不是一个数量级的【注:这里的log以2为底数】。举个例子:对超大数组进行排序,如果你用传统的选择排序(O(n^2))对一个超大数组进行排序,你恐怕得等几分钟,而采用二分思想的快速排序(最坏情况O(nlogn),最好情况O(n)),最好情况只需要很短时间。量化一下,假如数组内有1024个元素,传统的选择排序本来需要1024*1024=1048576次循环,而使用快速排序,最坏情况只需要1024*log1024=10240次,最好情况只需要1024次,节省了大量时间!
那么,作为一位OIer(Olympic in Informatics),决定将易库中没有的算法以及数据结构以此模块作为补充,将时间复杂度优化到最优,使你的程序运行效率更高!
代码没有抄袭任何人现成的代码,我只是将在C++算法竞赛中所学到的东西用易语言写出来而已,部分内容参考了一些文献。
目前支持:
算法:快速排序、稳定排序、取最大值、取最小值、向上取整、向下取整、反转文本、反转字节集
数据结构:并查集、大根堆、小根堆
开发进程中:高精度整数类、KMP、AC自动机
更新日志:
2016/2/6 1.2
1、修复向上取整和向下取整的bug
1.2版本以前略。
下载:
algorithm_structure.zip
(6.08 KB, 下载次数: 24)
|
评分
-
查看全部评分
|