zoukankan      html  css  js  c++  java
  • 一个简单的快速排序法

    升序

    procedure QuickSort(var arr: array of Integer; const left, right: Integer);

    procedure swap(
    const i, j: Integer);
    var
    vT: Integer;
    begin
    if i = j then Exit;
    vT :
    = arr[i];
    arr[i] :
    = arr[j];
    arr[j] :
    = vT;
    end;

    var
    vL, vR: Integer;
    begin
    if left >= right then Exit;
    vL :
    = left;
    vR :
    = right + 1;
    while True do
    begin
    while vL + 1 < Length(arr) do
    begin
    Inc(vL);
    if arr[vL] >= arr[left] then Break;
    end;
    while vR - 1 < Length(arr) do
    begin
    Dec(vR);
    if arr[vR] <= arr[left] then Break;
    end;
    if vL >= vR then Break;
    swap(vL, vR);
    end;
    swap(left, vR);
    QuickSort(arr, left, vR
    - 1);
    QuickSort(arr, vR
    + 1, right);
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    var
    vA: array of Integer;
    vStr:
    string;
    i: Integer;
    begin
    SetLength(vA,
    10);
    vA[
    0] := 41;
    vA[
    1] := 24;
    vA[
    2] := 76;
    vA[
    3] := 11;
    vA[
    4] := 45;
    vA[
    5] := 64;
    vA[
    6] := 21;
    vA[
    7] := 69;
    vA[
    8] := 19;
    vA[
    9] := 36;
    QuickSort(vA,
    0, Length(vA) - 1);
    for i := 0 to Length(vA) - 1 do
    vStr :
    = vStr + ' ' + IntToStr(vA[i]);
    edt1.Text :
    = vStr;
    end;
  • 相关阅读:
    IO
    mouseover,mouseout和mouseenter,mouseleave
    【译】addEventListener 第二个参数
    Git 常用命令
    我对Backbone中url属性的理解
    小失误引起大失败
    收集各大网站的登录页面
    随笔2
    随笔1
    创建数据库
  • 原文地址:https://www.cnblogs.com/klaus/p/1816459.html
Copyright © 2011-2022 走看看