上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页
摘要: 算法: 1、将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。 2、从最低位开始,依次进行一次排序。 3、这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。 阅读全文
posted @ 2017-06-02 15:53 yl007 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 算法: 1、找出待排序的数组中最大和最小的元素 2、统计数组中每个值为i的元素出现的次数,存入数组C的第i项 3、对所有的计数累加(从C中的第一个元素开始,每一项和前一项相加) 4、反向填充目标数组:将每个元素i放在新数组的第C(i)项,每放一个元素就将C(i)减去1 阅读全文
posted @ 2017-06-02 15:43 yl007 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 算法: 1、设置一个定量的数组当作空桶子。 2、寻访串行,并且把项目一个一个放到对应的桶子去。 3、对每个不是空的桶子进行排序。 4、从不是空的桶子里把项目再放回原来的串行中。 阅读全文
posted @ 2017-06-02 15:42 yl007 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 最大堆调整: 1、在对应的数组元素A[i], 左孩子A[LEFT(i)], 和右孩子A[RIGHT(i)]中找到最大的那一个,将其下标存储在largest中。 2、如果A[i]已经就是最大的元素,则程序直接结束。 3、否则,i的某个子结点为最大的元素,将A[largest]与A[i]交换。 4、再从 阅读全文
posted @ 2017-06-02 15:29 yl007 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 算法: 1、从数列中挑出一个元素,称为 "基准"(pivot), 2、重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。 3、递归地(recursive 阅读全文
posted @ 2017-06-02 15:23 yl007 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 算法: 1、依次比较相邻的两个数,将小数放在前面,大数放在后面; 2、第一趟可得到:将最大数放到最后一位。 3、第二趟可得到:将第二大的数放到倒数第二位。 4、如此下去,重复以上过程,直至最终完成排序。 阅读全文
posted @ 2017-06-02 15:16 yl007 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 算法: 1、先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。 2、所有距离为d1的倍数的记录放在同一个组中,在各组内进行直接插入排序。 3、取第二个增量d2<d1重复上述的分组和排序, 4、直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接 阅读全文
posted @ 2017-06-02 15:10 yl007 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 算法: 1、从第一个元素开始,该元素可以认为已经被排序 2、取出下一个元素,在已经排序的元素序列中二分查找到第一个比它大的数的位置 3、将新元素插入到该位置后 4、重复上述两步 阅读全文
posted @ 2017-06-02 13:49 yl007 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 算法:(升序:小→大,适合数据量较小) 1、从第一个元素开始,该元素可以认为已经被排序 2、取出下一个元素,在已经排序的元素序列中从后向前扫描 3、如果该元素(已排序)大于新元素,将该元素移到下一位置 4、重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 5、将新元素插入到该位置后 6、重复 阅读全文
posted @ 2017-06-02 11:34 yl007 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 算法规则: 像快速排序一样,由于归并排序也是分治算法,因此可使用分治思想:1.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列2.设定两个指针,最初位置分别为两个已经排序序列的起始位置 3.比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置 4.重复步 阅读全文
posted @ 2017-06-02 11:12 yl007 阅读(110) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页