数据结构----排序

排序算法可分为两大类:

  • 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是排序元素数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值