mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-12-18 01:00:15 +00:00
cc10b20beb
* Remove commented-out print statements in algorithmic functions * Encapsulate non-algorithmic code in __main__ * Remove unused print_matrix function * Remove print statement in __init__ * Remove print statement from doctest * Encapsulate non-algorithmic code in __main__ * Modify algorithm to return instead of print * Encapsulate non-algorithmic code in __main__ * Refactor data_safety_checker to return instead of print * updating DIRECTORY.md * updating DIRECTORY.md * Apply suggestions from code review * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Co-authored-by: Christian Clauss <cclauss@me.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
# Print all subset combinations of n element in given set of r element.
|
|
|
|
|
|
def combination_util(arr, n, r, index, data, i):
|
|
"""
|
|
Current combination is ready to be printed, print it
|
|
arr[] ---> Input Array
|
|
data[] ---> Temporary array to store current combination
|
|
start & end ---> Staring and Ending indexes in arr[]
|
|
index ---> Current index in data[]
|
|
r ---> Size of a combination to be printed
|
|
"""
|
|
if index == r:
|
|
for j in range(r):
|
|
print(data[j], end=" ")
|
|
print(" ")
|
|
return
|
|
# When no more elements are there to put in data[]
|
|
if i >= n:
|
|
return
|
|
# current is included, put next at next location
|
|
data[index] = arr[i]
|
|
combination_util(arr, n, r, index + 1, data, i + 1)
|
|
# current is excluded, replace it with
|
|
# next (Note that i+1 is passed, but
|
|
# index is not changed)
|
|
combination_util(arr, n, r, index, data, i + 1)
|
|
# The main function that prints all combinations
|
|
# of size r in arr[] of size n. This function
|
|
# mainly uses combinationUtil()
|
|
|
|
|
|
def print_combination(arr, n, r):
|
|
# A temporary array to store all combination one by one
|
|
data = [0] * r
|
|
# Print all combination using temporary array 'data[]'
|
|
combination_util(arr, n, r, 0, data, 0)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# Driver code to check the function above
|
|
arr = [10, 20, 30, 40, 50]
|
|
print_combination(arr, len(arr), 3)
|
|
# This code is contributed by Ambuj sahu
|