- 论坛徽章:
- 0
|
找了一两周的自定义函数在nawk中的应用,上次在看sed和awk那本书时,明白了在BEGIN前面定义,今天又用自定义函数做了个快速排序,这样,我就可以在solaris 8上做中文排序,以前用sunfire 880要5~6分钟的工作,现在应当很快了,刚编出来,在工作站上实验通过就来了网吧,录入,有敲错的地方原谅。
function part(array,low,high){
pivot=array[low]
while(low<high){
while(low<high && array[high]>=pivot) --high
array[low]=array[high]
while(low<high && array[low]<=pivot) ++low
array[high]=array[low]
}
array[low]=pivot
retun low
}
function Qsort(array,low,high){
if(low<high){
pivotloc=part(array,low,high)
Qsort(array,low,pivotloc-1)
Qsort(array,pivotloc+1,high)
}
}
BEGIN{
i=j=k=1
FS=OFS='\t'
low=high=1
}
{
array[NR]=$0
k=NR
}
END{
high=k
Qsort(array,1,k)
for(i=1;i<=k;i++)
print array
} |
|