摘要: 归并排序简言之,假设一个数组分成两个有同序的小数组(1/2组),然后将二者合并。递归的假设,将小组再假设分成两个有同序的小组(1/4组),然后合并二者。递归。。。。最后1/n组剩下一个数据了,两个1/n组合并。这应该easy哈。递归实现如下: ///<summary>///MergeSortO(nlogn)///</summary>///<paramname="arr"></param>publicstaticvoidMergeSort(int[]arr){if(arr==null){thrownewArgumentNullE 阅读全文
posted @ 2012-07-16 18:32 EricWen 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 希尔排序的一种缩小增量(Incremental)的排序,是直接插入排序的一种升级。基本思想就是,将原有的数组arr,分成Incremental 个小数组,然后对各个小数组进行插入排序,当然我认为,也可以用其他排序算法。然后将增量(Incremental)减半,再分组,再排序。直到最后Incremental=1,也必须等于1,这时,就只能分成一组了,相当于对整个数组进行一次插入排序。这样做的好处,在于,不断细分数组,使得在排序过程中减少了数据的移动量。我的C#实现如下:///<summary>///ShellsortO((nlogn)^2)///</summary>/// 阅读全文
posted @ 2012-07-16 16:01 EricWen 阅读(439) 评论(0) 推荐(0) 编辑