加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

排序算法

发布时间:2020-12-15 23:01:17 所属栏目:安全 来源:网络整理
导读:? 算法名称 归类 英文名 时间复杂度 优点 缺点 和别的算法的比较 我常用的 直接插入排序 插入排序的一种 StraightInsectionSort ? ? 稳定 ? A? 希尔排序 插入排序的一种 ShellSort 平均效率是O(nlogn) 适合于数据量在5000以下 不稳定 (即相等的数,在排序后
?
算法名称
归类
英文名
时间复杂度
优点
缺点
和别的算法的比较
我常用的
直接插入排序
插入排序的一种
StraightInsectionSort
?
?
稳定
?
A?
希尔排序
插入排序的一种
ShellSort
平均效率是O(nlogn)
适合于数据量在5000以下
不稳定
(即相等的数,在排序后相对位置可能改变)
Shell排序比冒泡排序快5倍,比插入排序大致快2倍。Shell排序比起QuickSort,MergeSort,HeapSort慢很多。
相对比较简单,它适合于数据量在5000以下并且速度并不是特别重要的场合.
?
快速排序
交换排序的一种
QuickSort
在平均状况下,排序?n?个项目要Ο(n?log?n)次比较。在最坏状况下则需要Ο(n2)
?
不稳定
?
A
冒泡排序
交换排序的一种
BubbleSort
n^2?
?
稳定
?
A
?
?
?
?

?
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);
?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读