Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions Graph Algorithms/Block Swap/blockswap.py
Original file line number Diff line number Diff line change
@@ -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);


33 changes: 33 additions & 0 deletions Sorting/Bitonic Sort/Python/bitonicsort.py
Original file line number Diff line number Diff line change
@@ -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=" ")
35 changes: 35 additions & 0 deletions Sorting/Cocktail Sort/# Python program for implementation of c.py
Original file line number Diff line number Diff line change
@@ -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])