code: def find_span_linear(degree, knot_vector, num_ctrlpts, knot, **kwargs):
      
      span = 0  # Knot span index starts from zero
      while span < num_ctrlpts and knot_vector[span] <= knot:
          span += 1
  
      return span - 1
docs: Finds the span of a single knot over the knot vector using linear search.
  
      Alternative implementation for the Algorithm A2.1 from The NURBS Book by Piegl & Tiller.
  
      :param degree: degree, :math:`p`
      :type degree: int
      :param knot_vector: knot vector, :math:`U`
      :type knot_vector: list, tuple
      :param num_ctrlpts: number of control points, :math:`n + 1`
      :type num_ctrlpts: int
      :param knot: knot or parameter, :math:`u`
      :type knot: float
      :return: knot span
      :rtype: int