排序算法
发布时间:2020-12-15 23:01:17 所属栏目:安全 来源:网络整理
导读:? 算法名称 归类 英文名 时间复杂度 优点 缺点 和别的算法的比较 我常用的 直接插入排序 插入排序的一种 StraightInsectionSort ? ? 稳定 ? A? 希尔排序 插入排序的一种 ShellSort 平均效率是O(nlogn) 适合于数据量在5000以下 不稳定 (即相等的数,在排序后
?
?
?
?
?
?
1、 ???对数据进行排序,从小到大(2种方法) ???(23,53,28,24,46,33,18)
?
?
?
?
?
数据排序方法根据占用内存的方式不同分为2大类:
内部排序方法与外部排序方法。
内部排序方法可归纳为五类:插入排序、选择排序、交换排序、归并排序和分配排序。
其中,插入排序主要包括直接
插入排序和
希尔排序两种;选择排序主要包括直接
选择排序和
堆排序;交换排序主要包括冒泡排序和
快速排序。
下面用冒泡排序和直接排序来实现数据排序:
?
一.? 选择排序
在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。
?
二. 插入排序
将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。
?
三. 希尔排序
?
四. 推排序
?
五 冒泡排序
?
六 快速排序
?
七 归并排序
?
var temp:int = 0;
var arr:Array = [23,53,28,24,46,33,18];
for (var i:int = 0; i < arr.length-1 ; i++){
for (var j:int = 0; j < arr.length - i - 1; j++){
???if (arr[j]>arr[j + 1]) {
???????temp=arr[j];
???????arr[j]=arr[j + 1];
???????arr[j + 1]=temp;
???}
}
}
trace(arr);
//直接排序
var arr:Array = [23,18];
for (var i:int = 0; i < arr.length; i++) {
var temp = arr[i];
for (var j:int = i; j > 0 && temp < arr[j - 1]; j--) {
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
}
trace(arr);
?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |