HEX

Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit - prohibited by configuration in /home/u547966/brikov.ru/www/wp-content/plugins/admin-menu-editor/menu-editor.php on line 745
Server: Apache
System: Linux 4.19.0-0.bpo.9-amd64 x86_64 at red40
User: u547966 (5490)
PHP: 5.3.29-mh2
Disabled: syslog, dl, popen, proc_open, proc_nice, proc_get_status, proc_close, proc_terminate, posix_mkfifo, chown, chgrp, accelerator_reset, opcache_reset, accelerator_get_status, opcache_get_status, pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wifcontinued, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority
Upload Files
File: //usr/share/doc/mawk/examples/qsort.awk
#!/usr/bin/mawk -f

# 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 sentinal 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(i = 1 ; i <= NR ; i++) print line[i]
}