排序算法可分为两大类:
- 1. 随机存取目标排序法,如对数组或者随机存取磁盘文件的排序。
- 2. 顺序目标排序法,如对磁盘,磁带或连接表的排序。
- 只是听说过,磁盘,磁带没有见过,估计是师傅那一带人玩的玩意。
- 对数组排序有三种通用的方法:
- a.交换排序
- b.选择排序
- c.插入排序
- 拿扑克形象地理解这三种方法:
- 用交换方法对扑克牌排序时,把扑克牌摊在桌面上,花色面朝上,然后交换顺序已乱的牌,直到有序为止。
- 用选择排序时,把牌摊在桌面上,把数值最小的牌抽出来,放在手中。然后在剩余牌中,再找最小的,将其放到手中的牌的后面。如此继续在桌面上无牌时为止,手中的牌就拍好了。
- 插入排序,把牌都放在手里。每次从手中取一张放在桌面上,每次放到桌上时,都插入适当的位置。如此继续,手中无牌时,桌上的一副牌就变成有序了。
- 第一节 冒泡排序
冒泡排序是一种交换排序。世上称之为,知名度最高的排序,学校里经常考试,面试的时候也会出现,因为它简单,其实它很出名主要是它是当前最差的排序之一,它应该还有兄弟。下面来看它的描述:
private function bubbleSort():void
{
var arr:Array = [2,3,5,1,8,4];
var len:int = arr.length;
var temp:int = 0;
var flag:Boolean = true;
for(var i:int = 0; i < len; i++)
{
for(var j:int = len; j > i; j--)
{
if(arr[j -1 ] > arr[j])
{
temp = arr[j -1];
arr[j -1] = arr[j];
arr[j] = temp;
flag = false;
}
}
if(flag)
{
break;
}
}
}外部循环 n-1次,内部循环n/2次,一共运行了1/2(n*n - n)次比较,其中n是排序元素数。