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);
     
  • 相关阅读:
    UESTC cdoj 619 吴神,人类的希望 (组合数学)
    Codeforces Round #317 (Div. 2) D Minimization (贪心+dp)
    Codeforces Round #317 div2 E div1 C CNF 2 (图论,匹配)
    Codeforces Round #317 (Div. 2) C Lengthening Sticks (组合,数学)
    UVA 1412 Fund Management (预处理+状压dp)
    UVA
    codeforces Gym 100338F Spam Filter 垃圾邮件过滤器(模拟,实现)
    WebSocket 学习教程(二):Spring websocket实现消息推送
    dwr的ScriptSession和HttpSession分析
    WebSocket 学习教程(一):理论
  • 原文地址:https://www.cnblogs.com/jason-beijing/p/10328382.html
Copyright © 2011-2022 走看看