zoukankan      html  css  js  c++  java
  • 排序算法

     
    算法名称
    归类
    英文名
    时间复杂度
    优点
    缺点
    和别的算法的比较
    我常用的
    直接插入排序
    插入排序的一种
    StraightInsectionSort
     
     
    稳定
     
    希尔排序
    插入排序的一种
    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,53,28,24,46,33,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);
     
  • 相关阅读:
    2019.6.20刷题统计
    36 线程 队列 守护线程 互斥锁 死锁 可重入锁 信号量
    35 守护进程 互斥锁 IPC 共享内存 的方式 生产者消费者模型
    34 进程 pid ppid 并发与并行,阻塞与非阻塞 join函数 process对象 孤儿进程与僵尸进程
    33 udp 域名 进程
    32 粘包 文件传输
    31 socket客户端. 服务器 异常 语法
    30 网络编程
    29 元类 异常
    26 封装 反射 常用内置函数
  • 原文地址:https://www.cnblogs.com/jason-beijing/p/10328382.html
Copyright © 2011-2022 走看看