| 
						
						
						
					 | 
				
				 | 
				
					@ -0,0 +1,39 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import math | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					def jumpSearch( arr , x ): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    # Finding block size to be jumped | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    n = len(arr) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    step = math.sqrt(n) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    # Finding the block where element is | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    # present (if it is present) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    prev = 0 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    while arr[int(min(step, n)-1)] < x: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        prev = step | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        step += math.sqrt(n) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if prev >= n: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return -1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    # Doing a linear search for x in | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    # block beginning with prev. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    while arr[int(prev)] < x: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        prev += 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        # If we reached next block or end | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        # of array, element is not present. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if prev == min(step, n): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return -1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    # If element is found | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if arr[int(prev)] == x: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return int(prev) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    return -1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					arr = [ 0, 1, 3, 4, 4, 5, 8, 13, 22, 24, 55, 59, 122, 213, 422, 555 ] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					x = 55 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index = jumpSearch(arr, x) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					print("Number is at index {}".format(index)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 |