工作之余闲来无聊,于是就有了用JS来实现算法演示的想法,很久以前用JS实现过选择排序,不过源程序找不到了! 汉诺塔的递归算法:void move(int n,char a,char b,char c){ if(n==1) printf("\t%c->%c\n",a,c); ...
分类:
其他好文 时间:
2014-07-16 20:57:51
阅读次数:
228
A,B:很水,注意边界,话说HACK都是这些原因。C:R[I][J]:表示反转I-J能改变冒泡排序的次数; DP方程:dp[i][k]=max(dp[j][k],dp[j][k-1]+dp[j][i]) (0#include#include#include#include#includeusing ...
分类:
其他好文 时间:
2014-07-14 10:00:59
阅读次数:
191
选择排序的时间复杂度为O(n^2),是不稳定的排序
冒泡排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),平均情况下为O(n^2),是稳定的排序
插入排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),,平均情况下为O(n^2),是稳定的排序
1.选择排序
def selection(lista):
leng=len(lista);
for i in rang...
分类:
编程语言 时间:
2014-07-12 21:20:59
阅读次数:
244
希尔排序对于多达几千个数据项的,中等大小规模的数组排序表现良好,希尔排序不像快速排序和其它时间复杂度为O(n*logn)的排序算法那么快,因此,对非常大的文件排序,它不是最优选择,但是希尔排序比选择排序和插入排序这种时间复杂度为O(n²)的排序要快的多,并且它非常容易实现,代码简短 希尔排序也...
分类:
其他好文 时间:
2014-07-12 13:06:10
阅读次数:
190
数组和冒泡排序冒泡排序:让数组中的数据从小到大排序,先进行两两比较(第i个元素和第i+1个元素进行比较)进行n(i-1)次两两对比。从大到小排序。10,20,30,40,50,60,70 原始数据20,30,40,50,60,70,10 第一次排序,比较6次30,40,50,60,70,20,10第...
分类:
其他好文 时间:
2014-07-11 22:39:00
阅读次数:
239
冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 1 pa...
分类:
其他好文 时间:
2014-07-11 18:16:27
阅读次数:
141
首先说明一下快速排序是对冒泡排序的改进。为什么这么说呢?想一下冒泡排序,它把序列分成了两部分,前半部分无序,后半部分升序排列,并且后半部分的数都大于前半部的数。由此可得到快速排序和冒泡排序的一些共同点:都要经历n趟排序每趟排序要经历O(n)次比较都是后半部分元素比前半部大而不同之处就在于冒泡排序的交...
分类:
其他好文 时间:
2014-07-11 10:47:33
阅读次数:
251
到目前为止, 我们已经学习到了插入排序, 冒泡排序, 选择排序(selection)。 这些排序算法都是comparision based sorting algorithms(即涉及到元素大小的比较来决定元素的先后顺序)。 而且算法的时间复杂度上均为O(n^2)。但是comparision based 的排序算法远非这几个算法。 而且可以通过利用其它的一些手段(例如divide and conq...
分类:
编程语言 时间:
2014-07-11 08:29:25
阅读次数:
441
public class BubbleSort : SortBase { public BubbleSort(int num, int[] arr): base(num,arr) { } public overri...
分类:
其他好文 时间:
2014-07-09 19:26:54
阅读次数:
159
一。概念每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。二。示例初始序列: {49 27 65 97 76 12 38}第1趟:12与49交换:12{27 65 97 76 49 ...
分类:
其他好文 时间:
2014-07-09 15:46:21
阅读次数:
153