08 2010 档案

摘要:2路插入排序算法,是在直接插入排序和折半插入排序算法上 再改进的。主要目的是减少排序过程中的移动的记录次数。但是需要N个记录的辅助空间,原理是:设置一个和原数组L 同类型,大小的是数组d,首先将L【0】赋值给D【0】。然后L【1】和D【0】比较,并且将D【0】看成是排好序中处于中间位置的记录,然后从L的第二个记录开始比较,依次插入到D【0】之前或者之后的有序序列中。如果要排序的L【n】记录比D【0】 则插入到之前的序列中重点是要把辅助数组看成是循环数组,设置first和final标识,来记录辅助数组的开头和结尾。first记录D的开头位置。final机制D的结尾位置,排好序以后,从first开 阅读全文
posted @ 2010-08-24 01:46 音乐啤酒 阅读(497) 评论(0) 推荐(0) 编辑
摘要:直接插入排序算法,是一个查找和插入的过程,其中的查找过程可以使用折半查找方法来代替,因为插入排序的序列也是一个有序的序列直接插入排序算法的连接有序序列的折半查找算法的链接c#代码 #region 折半插入排序算法 public static void HalfInsertSort(ref int[] array) { for(int i=2;i<array.Length;++i) { array[0] = array[i]; //或者也可以添加if (array[i] < array[i - 1])先行判断 int low = 1; int high = i - 1; while( 阅读全文
posted @ 2010-08-23 23:27 音乐啤酒 阅读(382) 评论(3) 推荐(0) 编辑
摘要:选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。 主要有:简单选择排序、树型选择排序和堆排序。简单选择排序 简单选择排序的基本思想:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录 进行交换。共需进行i-1趟比较,直到所有记录排序完成为止。例如:进行第i趟选择时,从当前候选记录中选出关键字最小的k号记录,并和第i个记录进行交 换c#代码:#region 简单选择排序 static void SimpleSelectSort(ref int[] array) { fo.. 阅读全文
posted @ 2010-08-20 23:35 音乐啤酒 阅读(208) 评论(0) 推荐(0) 编辑
摘要:-NPOi本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。 阅读全文
posted @ 2010-08-19 17:54 音乐啤酒 阅读(259) 评论(0) 推荐(0) 编辑
摘要:快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。比如序列如下:int[] array = {0,49,38,65,97,76,13,27,49 };【0】下标作为暂时存储关键key的位置选取一个数据作为关键key,最初默认就是数组的第一个数字,比如49.设置low和high,下标位置和上标位置。最初默认low就是1,high就是 阅读全文
posted @ 2010-08-19 01:39 音乐啤酒 阅读(301) 评论(0) 推荐(0) 编辑
摘要:希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。基本思想 希尔排序基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。 该方法实质上是一种分组插入方法。 给定实例的shell排序的排序过程 假设待排序文件有10个记录,其 阅读全文
posted @ 2010-08-17 22:35 音乐啤酒 阅读(293) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示