import HeapSort,sys from time import clock def binarysearch(list,n): global compare global memory length=len(list) first=0 last=length-1 middle=int((first+last)/2) memory=memory+sys.getsizeof(list)+sys.getsizeof(n)+sys.getsizeof(length)+sys.getsizeof(first)+sys.getsizeof(last)+sys.getsizeof(middle) while int(list[middle])!=n and last>first: compare=compare+2 if n>int(list[middle]): compare=compare+1 first=middle+1 else: compare=compare+1 last=middle-1 middle=int((first+last)/2) if int(list[middle])==n: compare=compare+1 return 1 else: compare=compare+1 return 0 flag=0 memory=0 input=open('in15_10.txt','r+') output=open('out_33_15_10.txt','w') count=0 compare=0 for row in input: if count==0: list=row.split(",") elif count==1: list1=row.split(",") else: list2=row.split(",") count=count+1 memory=memory+sys.getsizeof(list1)+sys.getsizeof(list2)+sys.getsizeof(list)+sys.getsizeof(count) start=clock() for i in range(len(list1)): list1[i]=int(list1[i]) for count in range(int(list[0])): n=binarysearch(list1,int(list2[count])) if n==0: list1.append(int(list2[count])) else: pass HeapSort.Heapsort(list1) output.write(str(list1[int(list[2])])+","+str(list1[int(list[3])])+","+str(list1[int(list[4])])+","+str(list1[int(list[5])])) output.write("\nTime Consumed is: "+str(clock()-start)+" Secs") output.write("\nTotal No. Of Comparisons Are: "+str(compare)) output.write("\nMemory Consumed is: "+str(memory)+" Bytes") output.close()