算法
文章平均质量分 71
RusonWong
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分解质因数
质因数概念:每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。 算法原理:先根据需要分解的合数生成一个质数表。然后依次从小到大依次除合数,每次除之后都将保存步骤。 表达不好,还是看代码吧: using System; using System.Collectio原创 2012-03-24 18:03:49 · 877 阅读 · 0 评论 -
排序算法---堆排序
堆排序很快(NLogN)。实现起来也比较麻烦,主要麻烦的地方是如何实现一个堆。 这里直接用写好的堆(数据结构实现---堆)进行排序。 有了堆,实现对排序也就很简单了。代码如下: class HeapSorter { private Heap m_heap; public bool Sort(ref int[] numbers, int ar原创 2012-03-16 17:01:22 · 551 阅读 · 0 评论 -
排序算法--冒泡排序
这个算法其实很简单,也很慢(n*n),原理是不断比较相邻两个元素,如果需要的话,换续,直到排列结束。 不多解释,C#代码如下: class BubbleSorter { public BubbleSorter() { } public bool Sort(ref int[] numbers原创 2012-03-16 16:22:52 · 691 阅读 · 0 评论 -
排序算法---选择排序
这个排序也很简单,时间复杂度是n*n. 原理是:每次找未排序元素中最小(大)的元素,然后插在已排序的序列的最后。 废话不多说,看c#代码: class SelectSorter { public bool Sort(ref int[] numbers, int arrSize) { doInsertSort(ref num原创 2012-03-16 16:31:05 · 522 阅读 · 0 评论 -
排序算法---快速排序
快速排序时间复杂度是n*Logn。 原理: 1.从一组数中选取一个,将数组根据选取的那个数分成三部分:左边比它小,等于它,右边比它大。 2.对 左边和右边分别按1方法继续分。然后在将新分出来的左边右边继续分 3.直到左边或右边的数组大小为1. 一直觉得汉语表达能力不行,还是看代码吧: class QuickSorter { public bool S原创 2012-03-16 17:09:59 · 516 阅读 · 0 评论 -
排序算法--位图算法
最近在看Jon Bentley的《编程珠玑》,刚看完第一章,觉得老外写的东西就是要比国内的生动很多! 第一章是开篇,要说的事情是:要把问题描述清楚。为了说明白这个事情,作者举了一个实例:怎样给一个磁盘文件排序? 这个问题问的很模糊是不是? 其实这个问题正确清楚的描述如下: 输入:一个最多包含n个正整数的文件,每个数都小于n,其中n=10,000,000。输入文件中没有重复的整数,没有其他原创 2012-03-16 16:04:18 · 7805 阅读 · 1 评论 -
排序算法---合并排序
这个排序比起冒泡,选择什么的就快很多了,时间复杂度是n*logN,但是实现起来也很复杂。 原理是:第一步,合并1、2|3、4| 5、6....(相邻两个排序) 第二步,合并1、2、3、4|5、6、7、8|9...(相邻四个排序) . . . 实现起来最主要的是合并的函数,废话不多说,看代码: class MergerSorter { public原创 2012-03-16 16:47:47 · 716 阅读 · 0 评论 -
数据结构---栈实现
栈和队列不一样,栈是后进先出。 实现时用了数组储存栈,数组大小根据内容自动扩充。 废话不多说,上代码(C++) MyStack.h #pragma once template class MyStack { private: int m_tail; int m_arrSize; T* m_QueueArray; public: MyStack(); ~MyStack原创 2012-03-16 20:08:19 · 754 阅读 · 0 评论 -
数据结构---队列实现
栈是后进先出(先进后出),队列是先进先出(后进后出)。 我实现的是一个循环队列,当数组大小不够的时候,自动扩充大小。 废话不多说,看代码: MyQueue.h #pragma once template class MyQueue { private: int m_head; int m_tail; int m_arrSize; int m_count; T原创 2012-03-16 18:38:45 · 522 阅读 · 0 评论
分享