






def 				A	(			a_   )	->		Any:
					__UpperCamelCase :   Dict									=[701, 301, 132, 57, 23, 10, 4, 1]
					for gap in gaps:
										for i in range(a_				,len(a_   )   ):
															__UpperCamelCase :   List[str]									=collection[i]
															__UpperCamelCase :   List[str]									=i
															while j >= gap and collection[j - gap] > insert_value:
																				__UpperCamelCase :   Tuple									=collection[j - gap]
																				j -= gap
															if j != i:
																				__UpperCamelCase :   Tuple									=insert_value
					return collection


if __name__ == "__main__":
							from doctest import testmod

							testmod()
							A_			:Optional[Any]	    =		input('''Enter numbers separated by a comma:\n''').strip()
							A_			:Tuple	    =		[int(item) for item in user_input.split(''',''')]
							print(shell_sort(unsorted))









from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# Load iris file
A_			:Union[str, Any]	    =		load_iris()
iris.keys()


print(f"Target names: \n {iris.target_names} ")
print(f"\n Features: \n {iris.feature_names}")

# Train set e Test set
A_    ,A_    ,A_    ,A_			:Tuple	    =		train_test_split(
    iris['''data'''], iris['''target'''], random_state=4
)

# KNN

A_			:Any	    =		KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)

# new array to test
A_			:Optional[Any]	    =		[[1, 2, 1, 4], [2, 3, 4, 5]]

A_			:Union[str, Any]	    =		knn.predict(X_new)

print(
    f"\nNew array: \n {X_new}\n\nTarget Names Prediction: \n"
    f" {iris['target_names'][prediction]}"
)

