PHP 8.5.2
Preview: qsort.awk Size: 1.11 KB
/usr/share/doc/mawk/examples/qsort.awk

#!/usr/bin/mawk -f
# $MawkId: qsort.awk,v 1.4 2020/09/19 14:20:45 tom Exp $

# qsort text files

function middle(x,y,z)  #return middle of 3
{
  if ( x <= y )
  { if ( z >= y )  return y
    if ( z <  x )  return x
    return z
  }

  if ( z >= x )  return x
  if ( z <  y )  return y
  return z
}

function  isort(A , n,    i, j, hold)
{
  # if needed a sentinel at A[0] will be created

  for( i = 2 ; i <= n ; i++)
  {
    hold = A[ j = i ]
    while ( A[j-1] > hold )
    { j-- ; A[j+1] = A[j] }

    A[j] = hold
  }
}

# recursive quicksort
function  qsort(A, left, right    ,i , j, pivot, hold)
{
  pivot = middle(A[left], A[int((left+right)/2)], A[right])

  i = left
  j = right

  while ( i <= j )
  {
    while ( A[i] < pivot )  i++
    while ( A[j] > pivot )  j--

    if ( i <= j )
    { hold = A[i]
      A[i++] = A[j]
      A[j--] = hold
    }
  }

  if ( j - left > BLOCK )  qsort(A,left,j)
  if ( right - i > BLOCK )  qsort(A,i,right)
}

BEGIN { BLOCK = 5 }

{ line[NR] = $0 ""   # sort as string
}

END  {

  if ( NR > BLOCK )  qsort(line, 1, NR)

  isort(line, NR)

  for(ie = 1 ; ie <= NR ; ie++) print line[ie]
}

Directory Contents

Dirs: 0 × Files: 10

Name Size Perms Modified Actions
472 B lrwxr-xr-x 2020-09-19 14:49:10
Edit Download
3.19 KB lrwxr-xr-x 2020-09-19 13:46:31
Edit Download
1.82 KB lrwxr-xr-x 2023-10-31 22:58:49
Edit Download
635 B lrwxr-xr-x 2020-09-19 11:51:23
Edit Download
2.88 KB lrwxr-xr-x 2020-09-19 14:04:25
Edit Download
13.97 KB lrwxr-xr-x 2020-09-24 22:05:19
Edit Download
2.89 KB lrwxr-xr-x 2009-08-21 00:36:34
Edit Download
654 B lrwxr-xr-x 2020-09-19 13:02:14
Edit Download
1.03 KB lrwxr-xr-x 2008-09-09 20:52:55
Edit Download
1.11 KB lrwxr-xr-x 2020-09-19 14:20:45
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).