about algorithm