diff --git a/python basics/ADVANCE_HEAPSORT.py b/python basics/ADVANCE_HEAPSORT.py new file mode 100644 index 0000000..52adcec --- /dev/null +++ b/python basics/ADVANCE_HEAPSORT.py @@ -0,0 +1,42 @@ +# This code is contributed by Pranav Jain + +def heapify(arr, n, i): + largest = i # Initialize largest as root + l = 2 * i + 1 # left = 2*i + 1 + r = 2 * i + 2 # right = 2*i + 2 + + + if l < n and arr[i] < arr[l]: + largest = l + + + if r < n and arr[largest] < arr[r]: + largest = r + + # Change root, if needed + if largest != i: + arr[i],arr[largest] = arr[largest],arr[i] # swap + + # Heapify the root. + heapify(arr, n, largest) + +# The main function to sort an array of given size +def heapSort(arr): + n = len(arr) + + + for i in range(n, -1, -1): + heapify(arr, n, i) + + + for i in range(n-1, 0, -1): + arr[i], arr[0] = arr[0], arr[i] # swap + heapify(arr, i, 0) + + +arr = [ 12, 11, 13, 5, 6, 7] +heapSort(arr) +n = len(arr) +print ("Sorted array is") +for i in range(n): + print ("%d" %arr[i]), diff --git a/python basics/PrimeNo_interval.py b/python basics/PrimeNo_interval.py new file mode 100644 index 0000000..801953f --- /dev/null +++ b/python basics/PrimeNo_interval.py @@ -0,0 +1,11 @@ +startRange = 11 +endRange = 25 + +for val in range(startRange, endRange + 1): + + if val > 1: + for n in range(2, val): + if (val % n) == 0: + break + else: + print(val) diff --git a/python basics/basicShellSort.py b/python basics/basicShellSort.py new file mode 100644 index 0000000..fb12b45 --- /dev/null +++ b/python basics/basicShellSort.py @@ -0,0 +1,37 @@ +def shellSort(arr): + + + n = len(arr) + gap = n/2 + + + # The first gap elements a[0..gap-1] are already in gapped + # order keep adding one more element until the entire array + # is gap sorted + while gap > 0: + + for i in range(gap,n): + + # add a[i] to the elements that have been gap sorted + # save a[i] in temp and make a hole at position i + temp = arr[i] + + # shift earlier gap-sorted elements up until the correct + # location for a[i] is found + j = i + while j >= gap and arr[j-gap] >temp: + arr[j] = arr[j-gap] + j -= gap + + # put temp (the original a[i]) in its correct location + arr[j] = temp + gap /= 2 + + + +arr = [ 12, 34, 54, 2, 3] + +n = len(arr) +print ("Array before sorting:") +for i in range(n): + print(arr[i]), diff --git a/python basics/fibonacci_dp.py b/python basics/fibonacci_dp.py new file mode 100644 index 0000000..39d4d13 --- /dev/null +++ b/python basics/fibonacci_dp.py @@ -0,0 +1,15 @@ +FibArray = [0,1] + +def fibonacci(n): + if n<0: + print("Incorrect input") + elif n<=len(FibArray): + return FibArray[n-1] + else: + temp_fib = fibonacci(n-1)+fibonacci(n-2) + FibArray.append(temp_fib) + return temp_fib + +# Driver Program + +print(fibonacci(9))