为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。

基数排序

来自NOCOW
跳转到: 导航, 搜索

[编辑] 基本思想

基本思想是对n个元素依次按k,k-1,...1位上的数字进行桶排序。

[编辑] 算法实现

 program jspx;
 const n=8;
 type link=^node;
    node=record
        data:integer;
        next:link;
     end;
 var i,j,l,m,k:integer;
    a:array[1..n] of integer;
    s:string;
    q,head:array[0..9] of link;
    p,p1:link;
 begin
 writeln('Enter data:');
 for i:=1 to n do read(a[i]);
 for i:=5 downto 1 do
  begin
  for j:=0 to 9 do
   begin
    new(head[j]);
    head[j]^.next:=nil;
    q[j]:=head[j]
   end;
  for j:=1 to n do
   begin
    str(a[j],s);
    for k:=1 to 5-length(s) do
     s:='0'+ s;
    m:=ord(s[i])-48;
    new(p);
    p^.data:=a[j];
    p^.next:=nil;
    q[m]^.next:=p;
    q[m]:=p;
   end;
  l:=0;
  for j:=0 to 9 do
  begin
   p:=head[j];
   while p^.next<>nil do
    begin
     l:=l+1;p1:=p;p:=p^.next;dispose(p1);a[l]:=p^.data;
    end;
  end;
 end;
 writeln('Sorted data:');
 for i:= 1 to n do  write(a[i]:6);
 end.
基数排序是一个小作品,欢迎帮助扩充这个条目。
个人工具