摘要: 折半插入排序法,又称二分插入排序法,是直接插入排序法的改良版,也需要执行i-1趟插入,不同之处在于,第i趟插入,先找出第i+1个元素应该插入的的位置,假定前i个数据是已经处于有序状态。 折半插入排序(binary insertion sort)是对插入排序算法的一种改进,由于排序算法过程中,就是不断 阅读全文
posted @ 2017-01-12 10:52 小学生II 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 排序算法很多地方都会用到,近期又重新看了一遍算法,并自己简单地实现了一遍,特此记录下来,为以后复习留点材料。 废话不多说,下面逐一看看经典的排序算法: 1. 选择排序 选择排序的基本思想是遍历数组的过程中,以 i 代表当前需要排序的序号,则需要在剩余的 [i…n-1] 中找出其中的最小值,然后将找到 阅读全文
posted @ 2017-01-12 10:51 小学生II 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 归并排序算法思想:分而治之(divide - conquer);每个递归过程涉及三个步骤第一, 分解: 把待排序的 n 个元素的序列分解成两个子序列, 每个子序列包括 n/2 个元素.第二, 治理: 对每个子序列分别调用归并排序MergeSort, 进行递归操作第三, 合并: 合并两个排好序的子序列 阅读全文
posted @ 2017-01-12 10:49 小学生II 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 1、算法概念。 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。2、算法思想。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进 阅读全文
posted @ 2017-01-12 10:48 小学生II 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: 所需进行记录移动的操作次数较少 0--3(n-1) ,无论记录的初始排列如何,所需的关键字间的比较次 阅读全文
posted @ 2017-01-12 10:47 小学生II 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗点说,就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。 一个算法应该具有以下五个重要的特征: 1.有穷性: 一个算法必须保证执行有限步之后结束; 2.确切 阅读全文
posted @ 2017-01-12 10:46 小学生II 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将 阅读全文
posted @ 2017-01-12 10:44 小学生II 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 遍历删除List中的元素有很多种方法,当运用不当的时候就会产生问题。下面主要看看以下几种遍历删除List中元素的形式: 1.通过增强的for循环删除符合条件的多个元素 2.通过增强的for循环删除符合条件的一个元素 3.通过普通的for删除删除符合条件的多个元素 4.通过Iterator进行遍历删除 阅读全文
posted @ 2017-01-12 10:39 小学生II 阅读(5588) 评论(0) 推荐(0) 编辑