some important algorithms