| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1503 人关注过本帖
标题:3个文本框中分别输入三个字母,按字母顺序将其重新显示在文本框中
只看楼主 加入收藏
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
以下是引用wqjywyg在2007-9-7 21:41:22的发言:

这个代码可以输别的字符和数字.我不要

就是,purana给的排序代码太不先进了。

我这里还有一些排序算法,你自己看着办。都是pascal描述的,看懂应该不难。

(*
Project: Amber Standard Sources Library [ASSL]
Author: Amber
Title: Comparing Sort
Category: Base algorithm - Sort
Version: 1.0
Date: 2006-10-24
Remark: N/A
Tested Problems: N/A
*)
function Compare(const A, B: TElement): TData;
begin
Result := A - B;
end;
procedure InsertSort(l, r: TIndex);
var
i, j: TIndex;
Tmp: TElement;
begin
for i := l + 1 to r do
begin
Tmp := D[i];
j := i - 1;
while (j >= l) and (Compare(D[j], Tmp) > 0) do
begin
D[j + 1] := D[j];
Dec(j);
end;
D[j + 1] := Tmp;
end;
end;
procedure SelectSort(l, r: TIndex);
var
i, j, k: TIndex;
Tmp: TElement;
begin
for i := l to r do
begin
k := i;
for j := i + 1 to r do
if Compare(D[j], D[k]) < 0 then
k := j;
Tmp := D[i];
D[i] := D[k];
D[k] := Tmp;
end;
end;
procedure BubbleSort(l, r: TIndex);
var
i, j: TIndex;
Tmp: TElement;
begin
for i := l + 1 to r do
for j := r downto i do
if Compare(D[j - 1], D[j]) > 0 then
begin
Tmp := D[j - 1];
D[j - 1] := D[j];
D[j] := Tmp;
end;
end;
procedure QuickSort(l, r: TIndex);
var
i, j: TIndex;
Mid, Tmp: TElement;
begin
i := l;
j := r;
Mid := D[(i + j) div 2];
repeat
while Compare(D[i], Mid) < 0 do Inc(i);
while Compare(Mid, D[j]) < 0 do Dec(j);
if i <= j then
begin
Tmp := D[i];
D[i] := D[j];
D[j] := Tmp;
Inc(i);
Dec(j);
end;
until i > j;
if l < j then QuickSort(l, j);
if i < r then QuickSort(i, r);
end;
var
Tmp: TArray;
procedure MergeSort(l, r: TIndex);
var
m: TIndex;
i, j, k: TIndex;
begin
if l = r then Exit;
m := (l + r) div 2;
MergeSort(l, m);
MergeSort(m + 1, r);
i := l;
j := m + 1;
k := 0;
while (i <= m) and (j <= r) do
if Compare(D[i], D[j]) < 0 then
begin
Inc(k);
Tmp[k] := D[i];
Inc(i);
end
else
begin
Inc(k);
Tmp[k] := D[j];
Inc(j);
end;
while i <= m do
begin
Inc(k);
Tmp[k] := D[i];
Inc(i);
end;
while j <= r do
begin
Inc(k);
Tmp[k] := D[j];
Inc(j);
end;
while k > 0 do
begin
D[l + k - 1] := Tmp[k];
Dec(k);
end;
end;
procedure Sink(Cur, Size: TIndex);
var
Child: TIndex;
Tmp: TElement;
begin
Tmp := D[Cur];
while Cur * 2 <= Size do
begin
Child := Cur * 2;
if (Child + 1 <= Size) and (Compare(D[Child + 1], D[Child]) > 0) then Inc(Child);
if Compare(Tmp, D[Child]) >= 0 then Break;
D[Cur] := D[Child];
Cur := Child;
end;
D[Cur] := Tmp;
end;
procedure HeapSort(N: TIndex);
var
i: TIndex;
Tmp: TElement;
begin
for i := N div 2 downto 1 do
Sink(i, N);
for i := N downto 1 do
begin
Tmp := D[1];
D[1] := D[i];
D[i] := Tmp;
Sink(1, i - 1);
end;
end;

[此贴子已经被作者于2007-9-7 21:46:06编辑过]

2007-09-07 21:44
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
当然了.我只是举个例子.
只是三个TextBox.没有必须去用排序算法.

我的msn: myfend@
2007-09-07 21:47
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
以下是引用purana在2007-9-7 21:47:19的发言:
当然了.我只是举个例子.
只是三个TextBox.没有必须去用排序算法.

呵呵 原来如此。

2007-09-07 21:48
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
三个串比较用了11楼的代码,我想这时间的代价LZ是不花舍得的

[此贴子已经被作者于2007-9-7 21:49:26编辑过]


偶学编程,也许本身就是一个错。。。
2007-09-07 21:48
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
以下是引用coachard在2007-9-7 21:48:33的发言:
三个串比较用了11楼的代码,我想这时间的代价LZ是不花舍得的

按照楼主说法

我实在没想出什么比较能拒绝字母参加

2007-09-07 21:54
wqjywyg
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-9-7
收藏
得分:0 

那么多代码.还不习惯 留下中的吧.头痛的这么多
我是初学者


2007-09-07 21:54
快速回复:3个文本框中分别输入三个字母,按字母顺序将其重新显示在文本框中
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015571 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved