快速排序

来源:互联网 发布:python time 加减 编辑:程序博客网 时间:2024/06/05 05:00

    快速排序,时间复杂度O(n*log2),为一种较快的排序算法。

    代码实现:

type abc=array[0..10000]of longint;var  a:abc;  i,n:longint;procedure qsort(l,r:longint;var a:array of longint);var  k,t,i,j:longint;begin  k:=(l+r)div 2;  t:=a[k];  i:=l;  j:=r;  repeat    while a[j]>t do dec(j);    while a[i]<t do inc(i);    if i<=j then      begin          a[0]:=a[i];        a[i]:=a[j];
           a[j]:=a[0];
        inc(i);        dec(j);      end;  until i>j;  if i<r then qsort(i,r,a);  if j>l then qsort(l,j,a);end;begin  readln(n);  for i:=1 to n do    read(a[i]);  qsort(1,n,a);  for i:=1 to n do    write(a[i],' ');end.



1 0
原创粉丝点击