2012年3月23日
摘要: 1.冒泡排序 2.选择排序 3.归并排序 4.快速排序 5.插入排序 阅读全文
posted @ 2012-03-23 13:56 Frank.Fan 阅读(1524) 评论(0) 推荐(0) 编辑
摘要: 一、基本思想 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。 插入排序非常类似于整扑克牌。 在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是排好序的。 如果输入数组已经是排好序的话,插入排序出现... 阅读全文
posted @ 2012-03-23 13:52 Frank.Fan 阅读(33814) 评论(3) 推荐(2) 编辑
摘要: 一、基本思想 通过使用一个基准值将列表分为2个子列表,具体的过程是: 将基准值放在正确的位置上,在一个子列表中放入小于基准值的元素,另一个子列表中放入大于基准值的元素。 这就是快速排序(Quick Sort)的思想。 快排算法提供了目前已知最快的排序技术,除了某些极其特殊的情况下之外,快速排序徐几乎适用于所有场合。 二、算法描述 快速排序使用一系列递归调用将列表分为若干越来越小的子列表... 阅读全文
posted @ 2012-03-23 13:45 Frank.Fan 阅读(907) 评论(0) 推荐(0) 编辑
摘要: 一、基本思想 归并排序是建立在归并操作上的一种有效的排序算法。 该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将一个数组分为越来越小的子列表,每个子列表单独进行排序,然后合并形成更大的有序列表。 通过归并子列表元素来合并子列表就是归并排序(Merge Sort) 二、算法描述 1. 将一个列表分割成2个子列表 2. 第1个列表调用索引[first,... 阅读全文
posted @ 2012-03-23 13:41 Frank.Fan 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 一、基本思想 选择排序首先遍历列表,并且将最小的元素与第一个元素进行比较,随后遍历剩余的元素并将次小的元素与第二个元素进行比较,依次类推。 二、算法描述 选择排序算法从索引0处开始确定列表中最小元素的位置,并交换这个最小元素与arr[0]中元素的位置,该步骤会将最小的元素放在arr[0]中,列表中其他元素则保持无序状态; 1. 排序处理继续前进至索引1,并且确定子列表arr[1]…arr[... 阅读全文
posted @ 2012-03-23 13:24 Frank.Fan 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 一、基本思想冒泡排序的基本概念是依次比较相邻的两个元数,将小的数放在前面,大的数放在后面。即在第一趟排序中,首先比较第1个数和第2个数,将小数放前,大树放后;然后比较第2个数和第3个数,将小数放前,大数放后。以此类推,如此继续,直到比较最后两个数,将小数放前,大数放后。至此,第一趟排序结束,将最大的数放到了最后!第二趟:仍从第一对数开始比较,将小数放前,大数放后,一直比到倒数第2个数(倒数第1个数已经是最大的了),第二趟结束,倒数第2的位置上得到一个新的最大数。以此类推,重复以上过程,直至最终完成排序。由于排序过程中总是小数往前放,大数往后放,类似于气泡上升,所以成为冒泡排序。二、示例代码 . 阅读全文
posted @ 2012-03-23 10:54 Frank.Fan 阅读(608) 评论(3) 推荐(0) 编辑