Fórum Qual o melhor algoritimo para ordenar uma matriz... #316553
18/03/2006
0
Estou precisando ordenar uma matriz pelo campo código... gostaria de saber se existe alguma função do delphi que já faça isso e se não tem qual seria a solução...
desde já obrigado
Lauro.balceiro
Curtir tópico
+ 0Posts
20/03/2006
Rjun
Gostei + 0
20/03/2006
Martins
[url=http://www2.fundao.pro.br/articles.asp?cod=11][b:0214f459f4]QuickSort[/b:0214f459f4][/url]
Boa sorte!!
Gostei + 0
20/03/2006
Massuda
Gostei + 0
20/03/2006
Marco Salles
Se voce pesquisar e não encontrar , eu tenho um exemplo pronto , que hora me atende bem .. Voce posta que eu mando e coloco aqui no tópico
Valeu...
Gostei + 0
20/03/2006
Martins
Se voce pesquisar e não encontrar , eu tenho um exemplo pronto , que hora me atende bem .. Voce posta que eu mando e coloco aqui no tópico
Valeu...[/quote:d9fdfa5578]
Interessante [b:d9fdfa5578]Marco[/b:d9fdfa5578], é muito extenso esse código?
Gostei + 0
20/03/2006
Lauro.balceiro
Gostei + 0
21/03/2006
Martins
O Código abaixo é de autoria de [b:94fd145943]Marco Salles[/b:94fd145943].
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TClientes = class
private
FNome: string;
FEndereco: string;
procedure SetNome(const Value: string);
procedure SetEndereco(const Value: string);
public
property Nome: string read FNome write SetNome;
property Endereco: string read FEndereco write SetEndereco;
end;
TForm1 = class(TForm)
ListBox1: TListBox;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
FListaClientes: TList;
lCliente1, lCliente2, lCliente3: TClientes;
procedure SetListaClientes(const Value: TList);
private
{ Private declarations }
property ListaClientes: TList read FListaClientes write SetListaClientes;
procedure EncheListaClientes;
procedure AtualizaListBox;
public
{ Public declarations }
end;
var
Form1: TForm1;
function ClassificaPorNome(item1: Pointer; item2: Pointer): integer;
function ClassificarPorEndereco(item1: Pointer; item2: Pointer): integer;
implementation
{$R *.dfm}
{ TClientes }
procedure TClientes.SetEndereco(const Value: string);
begin
FEndereco := Value;
end;
procedure TClientes.SetNome(const Value: string);
begin
FNome := Value;
end;
{ TForm1 }
procedure TForm1.SetListaClientes(const Value: TList);
begin
FListaClientes := Value;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
ListaClientes := TList.Create;
EncheListaClientes;
AtualizaListBox;
end;
procedure TForm1.EncheListaClientes;
begin
lCliente1 := TClientes.Create;
lCliente1.Nome := ´Paulo´;
lCliente1.Endereco := ´Av. Joao Pereira Barreto´;
ListaClientes.Add(lCliente1);
lCliente2 := TClientes.Create;
lCliente2.Nome := ´Andre´;
lCliente2.Endereco := ´Av. Ayrton Senna´;
ListaClientes.Add(lCliente2);
lCliente3 := TClientes.Create;
lCliente3.Nome := ´Jair´;
lCliente3.Endereco := ´Rua Dom Pedro I´;
ListaClientes.Add(lCliente3);
end;
procedure TForm1.AtualizaListBox;
var
lIndex: integer;
begin
ListBox1.Items.Clear;
for lIndex := 0 to ListaClientes.Count -1 do
ListBox1.Items.Add(TClientes(ListaClientes[lIndex]).Nome + ´-´ + TClientes(ListaClientes[lIndex]).Endereco);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListaClientes.Sort(@ClassificaPorNome);
AtualizaListBox;
end;
function ClassificarPorEndereco(item1, item2: Pointer): integer;
begin
result := CompareText(TClientes(item1).Endereco, TClientes(item2).Endereco);
end;
function ClassificaPorNome(item1, item2: Pointer): integer;
begin
result := CompareText(TClientes(item1).Nome, TClientes(item2).Nome);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ListaClientes.Sort(@ClassificarPorEndereco);
AtualizaListBox;
end;
end.Boa sorte.
Gostei + 0
21/03/2006
Marco Salles
quem sou eu amigo martins.. Tenho que comer muito arroz.. A utoria depois do almoço eu posto...
So que o que vale hoje no meu conceito e alem do conhecimento e saber aonde achar , pois tempo é tudo e não dar para saber quase nada.. Tem que saber é pesquisar..
Gostei + 0
21/03/2006
Adriano Santos
quem sou eu amigo martins.. Tenho que comer muito arroz.. A utoria depois do almoço eu posto...[/quote:b493bebc0f]
Que comer arroz o que rapá? Tamu ligado que vc é o cara, tah é escondendo o jogo...rsrs...
Ficou muito bom.
Gostei + 0
21/03/2006
Marco Salles
O codigo de Autoria do Paulo Roberto Quicoli (pauloquicoli@gmail.com)
é simplesmente uma obra prima nos conceitos que tange Funções de CallBack.. Agente so tem o trabalho de ler e guardar o que se quer e aonde procurar
Gostei + 0
21/03/2006
Adriano Santos
O codigo de Autoria do Paulo Roberto Quicoli (pauloquicoli@gmail.com)
é simplesmente uma obra prima nos conceitos que tange Funções de CallBack.. Agente so tem o trabalho de ler e guardar o que se quer e aonde procurar[/quote:3c8e7b3597]
Heheh, blz maninho...vlw
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)