lionel chang

导航

2012年8月24日 #

内部排序总结 (二)交换排序

摘要: 交换类排序主要有冒泡排序和快速排序,其中快速排序是对冒泡排序进行了改进。一.冒泡排序冒泡排序也有两层循环,外层循环控制循环的边界,内层循环控制将要比较的元素下标。每次都是比较两个相邻的元素,最后最大的元素会被交换到最后一个位置,如此往复,直到不再进行交换为止。#include<stdio.h> #define TRUE 1 #define FALSE 0 void bubbleSort(int arr[],int len) { int i,j; int change; for(i=len-1,change=TRUE;i>0&&change;i-... 阅读全文

posted @ 2012-08-24 18:38 woshizyl 阅读(164) 评论(0) 推荐(0) 编辑

内部排序总结(一)插入排序

摘要: 所谓内部排序是指在内存中的排序,而外部排序则是待排数据过大以至于内存中一次性不能容纳全部记录,排序过程中需要对外存进行访问。根据所依据的原则,可以将内排分为插入排序,交换排序,选择排序,归并排序,基数排序五类。以下将对每种排序方法从算法的基本思想,时间复杂度,空间复杂度,稳定性上进行讨论。其中稳定性是指如果按照某种排序算法排序后,两个关键字相同的记录的顺序不发生变化,则这种排序算法是稳定的;否则,不稳定。一。插入排序1.直接插入排序是最简单的排序算法。每次将待插入数据插入到已经排序好的有序表中。i.空间复杂度因为只用到arr[0],i,j这三个辅助空间,所以空间复杂度为O(1)。ii.时间复杂 阅读全文

posted @ 2012-08-24 12:50 woshizyl 阅读(146) 评论(0) 推荐(0) 编辑