diff --git a/Graph Algorithms/Block Swap/blockswap.py b/Graph Algorithms/Block Swap/blockswap.py new file mode 100644 index 0000000..acd4c60 --- /dev/null +++ b/Graph Algorithms/Block Swap/blockswap.py @@ -0,0 +1,41 @@ +# block swap for array rotation +# recursive implementation +def leftRotate(arr, d, n): + leftRotateRec(arr, 0, d, n); + +def leftRotateRec(arr, i, d, n): + + if (d == 0 or d == n): + return; + + if (n - d == d): + swap(arr, i, n - d + i, d); + return; + + if (d < n - d): + swap(arr, i, n - d + i, d); + leftRotateRec(arr, i, d, n - d); + + else: + swap(arr, i, d, n - d); + + leftRotateRec(arr, n - d + i, 2 * d - n, d); + +def printArray(arr, size): + for i in range(size): + print(arr[i], end = " "); + print(); + +def swap(arr, fi, si, d): + for i in range(d): + temp = arr[fi + i]; + arr[fi + i] = arr[si + i]; + arr[si + i] = temp; + +# Driver Code +if __name__ == '__main__': + arr = [1, 2, 3, 4, 5, 6, 7]; + leftRotate(arr, 2, 7); + printArray(arr, 7); + + diff --git a/Sorting/Bitonic Sort/Python/bitonicsort.py b/Sorting/Bitonic Sort/Python/bitonicsort.py new file mode 100644 index 0000000..27b7423 --- /dev/null +++ b/Sorting/Bitonic Sort/Python/bitonicsort.py @@ -0,0 +1,33 @@ +# Python program for Bitonic Sort. + +def compAndSwap(a, i, j, dire): + if (dire==1 and a[i] > a[j]) or (dire==0 and a[i] < a[j]): + a[i],a[j] = a[j],a[i] + +def bitonicMerge(a, low, cnt, dire): + if cnt > 1: + k = cnt//2 + for i in range(low , low+k): + compAndSwap(a, i, i+k, dire) + bitonicMerge(a, low, k, dire) + bitonicMerge(a, low+k, k, dire) + +def bitonicSort(a, low, cnt,dire): + if cnt > 1: + k = cnt//2 + bitonicSort(a, low, k, 1) + bitonicSort(a, low+k, k, 0) + bitonicMerge(a, low, cnt, dire) + +def sort(a,N, up): + bitonicSort(a,0, N, up) + +# Driver code +a = [3, 7, 4, 8, 6, 2, 1, 5] +n = len(a) +up = 1 + +sort(a, n, up) +print ("\n\nSorted array is") +for i in range(n): + print("%d" %a[i],end=" ") diff --git a/Sorting/Cocktail Sort/# Python program for implementation of c.py b/Sorting/Cocktail Sort/# Python program for implementation of c.py new file mode 100644 index 0000000..1a12967 --- /dev/null +++ b/Sorting/Cocktail Sort/# Python program for implementation of c.py @@ -0,0 +1,35 @@ +# Python program for implementation of cocktail Sort +def cocktailSort(a): + n = len(a) + swapped = True + start = 0 + end = n-1 + while (swapped == True): + + swapped = False + + for i in range(start, end): + if (a[i] > a[i + 1]): + a[i], a[i + 1] = a[i + 1], a[i] + swapped = True + + if (swapped == False): + break + + swapped = False + end = end-1 + + for i in range(end-1, start-1, -1): + if (a[i] > a[i + 1]): + a[i], a[i + 1] = a[i + 1], a[i] + swapped = True + + start = start + 1 + + +# Driver code +a = [5, 1, 4, 2, 8, 0, 2] +cocktailSort(a) +print("Sorted array is:") +for i in range(len(a)): + print("% d" % a[i])