以下是最近学习各种算法的代码实现:#include #include #include #include typedef int EleType;typedef int (*CompFunc)(void *,void *);int IntComp(void * a,void *b){ if(*...
分类:
其他好文 时间:
2014-07-08 00:15:54
阅读次数:
293
选择排序
定义:依次选择最小的元素放在相应的位置上
特点:比较次数是 N(N-1)/2 交换次数是 N (each exchange puts an item into its ?nal position, so the number of exchanges is N. Thus, the running time is dominated by the number of
com...
分类:
其他好文 时间:
2014-07-03 15:44:01
阅读次数:
259
继《排序(一)__综述》后,对简单算法中的冒泡排序、简单选择排序和简单插入排序进行较为详细的解析。...
分类:
其他好文 时间:
2014-07-02 07:28:28
阅读次数:
192
排序算法基本陈述容易理解,之后会详细解析希尔排序、堆排序、归并排序、快速排序、简单选择排序、直接插入排序等排序算法。...
分类:
其他好文 时间:
2014-07-01 06:37:39
阅读次数:
188
5.排序操作5.1基础知识对于排序操作,介绍过很多的算法,在笔记中有关于排序算法的简单总结,但是对于每一个配需算法没有详细的深入,知识对于排序的稳定性做了一下了解。下面深入的分析一下排序算法,并且使用C++语言实现。首先介绍上一次在笔记中整理稳定排序和不稳定排序的知识:选择排序、快速排序、希尔排序、...
分类:
其他好文 时间:
2014-06-28 17:25:00
阅读次数:
274
昨日写完冒泡排序,和大多数人的感觉一样,太简单,丝毫没有挑战性。但楼主是一个追求踏实平稳的人,希望地基坚固,也为方便后面学习和研究更加高深的算法。但在研究效率上还有待提高,楼主一定好好努力。今天将会写完选择排序 和 插入排序,本文主在选择排序。一. 算法描写叙述 选择排序:比方在一个长度为N的...
分类:
其他好文 时间:
2014-06-26 20:24:48
阅读次数:
161
排序算法有不少,当然,一般的语言中都提供某个排序函数,比如Python中,对list进行排序,可以使用sorted(或者list.sort()),关于这方面的使用,在我的github代码库algorithm中有几个举例,有兴趣的看官可以去那里看看(顺便告知,我在Github中的账号是qiwsir,欢迎follow me)。但是,在某些情况下,语言中提供的排序方法或许不适合,必须选择某种排序算法。
...
分类:
其他好文 时间:
2014-06-24 18:33:33
阅读次数:
205
选择排序的基本思想:
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动...
分类:
编程语言 时间:
2014-06-22 18:18:19
阅读次数:
188
1 算法原理依次确认第一个位置0~倒数第二个位置size-2的值。在确认位置i时,其前面的位置都已经确认,所以位置i处应该放置剩余的元素中的最小值。选择排序时间复杂度为O(n^2),速度比较慢。当数组长度为10万时,就耗时20s了。选择排序是不稳定排序,相等的元素,排序之后,相对位置可能发生变化。2...
分类:
其他好文 时间:
2014-06-20 23:49:41
阅读次数:
318
最近又翻看了一下数据结构(数据结构学渣)。以前总是看不懂,连冒泡和选择排序都要纠结半天,后来才慢慢有意识能区分开来。当真的理解了快速排序之后,才觉得,这是个很赞的排序,很容易理解。于是简单的,模仿c的做法,实现了javascript上的排序,目前只有冒泡、选择和快速排序。//不过貌似快速排序用到了传...
分类:
编程语言 时间:
2014-06-20 18:50:02
阅读次数:
246