选项D描述错误。递归算法并不通常使用循环程序结构,而是通过函数调用自身来实现。递归算法可以简洁明了地解决问题,但需要注意递归深度过深可能导致栈溢出等问题。基例是递归算法中的重要组成部分,是递归终止的条件。而递归算法并非一定要用非递归的方法实现,有些问题递归解决更为简洁。因此,选项D描述错误。