diff --git a/data_structures/Ternary/Ternary.py b/data_structures/Ternary/Ternary.py new file mode 100644 index 0000000000..c56020eaad --- /dev/null +++ b/data_structures/Ternary/Ternary.py @@ -0,0 +1,63 @@ +class Node: + def __init__(self, data): + self.data = data + self.isEndOfString = False + self.left = None + self.eq = None + self.right = None + + +def insert(root, word): + if not root: + root = Node(word[0]) + if word[0] < root.data: + root.left = insert(root.left, word) + elif word[0] > root.data: + root.right = insert(root.right, word) + else: + if len(word) > 1: + root.eq = insert(root.eq, word[1:]) + else: + root.isEndOfString = True + return root + +def traverseTSTUtil(root, buffer, depth): + if root: + traverseTSTUtil(root.left, buffer, depth) + buffer[depth] = root.data + if root.isEndOfString: + print("".join(buffer[:depth+1])) + traverseTSTUtil(root.eq, buffer, depth+1) + traverseTSTUtil(root.right, buffer, depth) + +def traverseTST(root): + buffer = [''] * 50 + traverseTSTUtil(root, buffer, 0) + +def searchTST(root, word): + if not root: + return False + if word[0] < root.data: + return searchTST(root.left, word) + elif word[0] > root.data: + return searchTST(root.right, word) + else: + if len(word) > 1: + return searchTST(root.eq, word[1:]) + else: + return root.isEndOfString + +root = Node('') +insert(root, "cat") +insert(root, "cats") +insert(root, "up") +insert(root, "bug") + +print("Following is traversal of ternary search tree:") +traverseTST(root) + +print("\nFollowing are search results for 'cats', 'bu', and 'up':") +print("Found" if searchTST(root, "cats") else "Not Found") +print("Found" if searchTST(root, "bu") else "Not Found") +print("Found" if searchTST(root, "up") else "Not Found") +# This code is contributed by Shivam Tiwari diff --git a/greedy/README.md b/greedy/README.md index 0d56719de5..6f17a0af3e 100644 --- a/greedy/README.md +++ b/greedy/README.md @@ -8,7 +8,18 @@ Greedy algorithms work by recursively constructing a set of objects from the sma Greedy algorithms are often used in ad hoc mobile networking to efficiently route packets with the fewest number of hops and the shortest delay possible. They are also used in machine learning, business intelligence (BI), artificial intelligence (AI) and programming. +#### Greedy Algorithm in Korean Version +탐욕스러운 알고리즘 +탐욕스러운 알고리즘은 어떤 다음 단계가 가장 명백한 이점을 제공할지 결정함으로써 복잡한 다단계 문제에 대한 간단하고 구현하기 쉬운 해결책을 찾는 수학적 과정입니다. + +이러한 알고리즘은 탐욕스럽다고 불립니다.왜냐하면 각각의 작은 인스턴스에 대한 최적의 솔루션은 즉각적인 출력을 제공하지만 알고리즘은 더 큰 문제를 전체적으로 고려하지 않기 때문입니다. 일단 결정이 내려지면,그것은 결코 재고되지 않습니다. + +탐욕스러운 알고리즘은 가능한 가장 작은 구성 요소에서 객체 집합을 재귀적으로 구성하여 작동합니다. 재귀는 문제 해결에 대한 접근법으로 특정 문제에 대한 해결책은 동일한 문제의 작은 인스턴스에 대한 해결책에 달려 있습니다. 탐욕스러운 알고리즘을 사용하는 장점은 문제의 작은 인스턴스에 대한 해결책이 간단하고 이해하기 쉽다는 것입니다. 단점은 가장 최적의 단기적 해결책이 최악의 장기적 결과를 초래할 수 있다는 것입니다. + +탐욕스러운 알고리즘은 종종 임시 모바일 네트워크에서 가장 적은 수의 홉과 가능한 가장 짧은 지연으로 패킷을 효율적으로 라우팅하는 데 사용됩니다. 또한 기계 학습,비즈니스 인텔리전스(비),인공 지능(인공 지능)및 프로그래밍에도 사용됩니다. #### Examples ![](https://commons.wikimedia.org/wiki/File:Greedy-search-path-example.gif) -#### Further reading: [Wikipedia](https://en.wikipedia.org/wiki/Greedy_algorithm) \ No newline at end of file +#### Further reading: [Wikipedia](https://en.wikipedia.org/wiki/Greedy_algorithm) + +#### Greedy Algorithm in Korean Version \ No newline at end of file diff --git a/greedy/Sairam-K26 About Greedy Algo in Korean b/greedy/Sairam-K26 About Greedy Algo in Korean new file mode 100644 index 0000000000..6fcdf2c3b4 --- /dev/null +++ b/greedy/Sairam-K26 About Greedy Algo in Korean @@ -0,0 +1,9 @@ +#### Greedy Algorithm in Korean Version +탐욕스러운 알고리즘 +탐욕스러운 알고리즘은 어떤 다음 단계가 가장 명백한 이점을 제공할지 결정함으로써 복잡한 다단계 문제에 대한 간단하고 구현하기 쉬운 해결책을 찾는 수학적 과정입니다. + +이러한 알고리즘은 탐욕스럽다고 불립니다.왜냐하면 각각의 작은 인스턴스에 대한 최적의 솔루션은 즉각적인 출력을 제공하지만 알고리즘은 더 큰 문제를 전체적으로 고려하지 않기 때문입니다. 일단 결정이 내려지면,그것은 결코 재고되지 않습니다. + +탐욕스러운 알고리즘은 가능한 가장 작은 구성 요소에서 객체 집합을 재귀적으로 구성하여 작동합니다. 재귀는 문제 해결에 대한 접근법으로 특정 문제에 대한 해결책은 동일한 문제의 작은 인스턴스에 대한 해결책에 달려 있습니다. 탐욕스러운 알고리즘을 사용하는 장점은 문제의 작은 인스턴스에 대한 해결책이 간단하고 이해하기 쉽다는 것입니다. 단점은 가장 최적의 단기적 해결책이 최악의 장기적 결과를 초래할 수 있다는 것입니다. + +탐욕스러운 알고리즘은 종종 임시 모바일 네트워크에서 가장 적은 수의 홉과 가능한 가장 짧은 지연으로 패킷을 효율적으로 라우팅하는 데 사용됩니다. 또한 기계 학습,비즈니스 인텔리전스(비),인공 지능(인공 지능)및 프로그래밍에도 사용됩니다. \ No newline at end of file