知识大全 极快的正整数排序函数

Posted 函数

篇首语:人生处万类,知识最为贤。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 极快的正整数排序函数相关的知识,希望对你有一定的参考价值。

  实现原理 对比二进制位

  unit Unit ;

  interface

  uses Windows  Messages  SysUtils  Variants  Classes  Graphics  Controls  Forms  Dialogs  StdCtrls;

  type TForm  = class(TForm)  Button : TButton;  Memo : TMemo;  procedure Button Click(Sender: TObject);  procedure FormCreate(Sender: TObject); end;

  var Form : TForm ;

  implementation

  $R * dfm

  type TIntArr = array of Integer;

  极快的正整数排序函数procedure IntSort(arr:TIntArr; low:Integer= ; high:Integer= ; k:Cardinal=$ ; c:Cardinal= );var i j x: Integer;begin if high =   then high := Length(arr)  ; i := low; j := high; while (i < j) do begin  while (arr[j] and k <>  ) and (i < j) do Dec(j);  while (arr[i] and k =  ) and (i < j) do Inc(i);  if i < j then  begin   x := arr[j];   arr[j] := arr[i];   arr[i] := x;  end else begin   if arr[j] and k <>   then Dec(i) else Inc(j);   Break;  end; end; if k > c then begin  if low < i then IntSort(arr  low  i  k div  );  if j < high then IntSort(arr  j  high  k div  ); end;end;

  测试procedure TForm Button Click(Sender: TObject);var MyArr: TIntArr; i: Integer; t: Int ;begin SetLength(MyArr  MAXWORD); for i := Low(MyArr) to High(MyArr) do MyArr[i] := Random(MaxInt);  t := GetTickCount;  IntSort(MyArr); //调用排序函数  Text := IntToStr(GetTickCount   t);

  Memo Clear; for i :=   to Length(MyArr)  do begin  if i mod   =   then   Memo Lines Add(IntToStr(MyArr[i])); end;end;

cha138/Article/program/Delphi/201311/8435

相关参考

知识大全 Asp常用通用函数之生成时间的整数

Asp常用通用函数之生成时间的整数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  函数名GetM

知识大全 js函数排序的实例代码

这篇文章介绍了js函数排序的代码有需要的朋友可以参考一下 复制代码代码如下:varas=[];assort();//这个排序是按照字典排序//自定义按照数字排序functionsortByN

知识大全 Oracle聚集函数排序

Oracle聚集函数排序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于按照自定义聚集函数连

知识大全 PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解

PHP冒泡排序二分查找顺序查找二维数组排序算法函数的详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 PHP数组排序函数

PHP数组排序函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/Artic

知识大全 已知abc为正整数,二次函数y=ax²+bx+c,当-2≤x≤1时,y的 最大值为7,最小值为-1,求二次函数的解

已知abc为正整数,二次函数y=ax²+bx+c,当-2≤x≤1时,y的最大值为7,最小值为-1,求二次函数的解因为abc都是正整数(这个是个关键条件,在后续分析和排除中会经常使用,我将这个条件记为"

知识大全 求助~~程序设计:输入一个正整数n,计算1到n的和,定义和调用求和函数,返回值为int型.

求助~~程序设计:输入一个正整数n,计算1到n的和,定义和调用求和函数,返回值为int型.#include<stdio.h>intsum(intn)inti,s=0;for(i=1;i&l

知识大全 PHP数组排序函数合集 以及它们之间的联系分析

PHP数组排序函数合集以及它们之间的联系分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  下边

知识大全 排序 - 选择排序 - 堆排序(三)

  ()BuildHeap和Heapify函数的实现  因为构造初始堆必须使用到调整堆的操作先讨论Heapify的实现  ①Heapify函数思想方法  每趟排序开始前R[li]是以R[]为根的堆在R

知识大全 排序 - 插入排序 - 希尔排序

  希尔排序(ShellSort)是插入排序的一种因DLShell于年提出而得名  希尔排序基本思想  基本思想  先取一个小于n的整数d作为第一个增量把文件的全部记录分成d个组所有距离为dl的倍数的