some algorithm of sort