from time import clock import sys def Better_Selection_Sort(): InFile=open('in10_1.txt','r') OutFile=open('out_1_10_1B.txt','w') start=clock() Totalswap=0 TotalCompare=0 InFile.readline() n=5 for setNum in range(1,n+1): Anum=[] Anum=InFile.readline().split(",") Anum[0]=Anum[0].lstrip("Set"+str(setNum)+":") InFile.readline() i=0 while(i < len(Anum)-i): minIndex = i maxIndex = len(Anum)-i-1 for j in range(i + 1, len(Anum)-i): if int(Anum[j]) < int(Anum[minIndex]): if int(Anum[minIndex]) > int(Anum[maxIndex]): maxIndex=minIndex minIndex = j TotalCompare+=2 elif int(Anum[j])> int(Anum[maxIndex]): maxIndex=j TotalCompare+=2 amin=int(Anum[minIndex]) amax=int(Anum[maxIndex]) if i==maxIndex: Anum[minIndex]=Anum[len(Anum)-i-1] Anum[len(Anum)-i-1]=amin Anum[maxIndex]=Anum[len(Anum)-i-1] Anum[len(Anum)-i-1]=amax Totalswap+=2 TotalCompare+=1 i+=1 continue elif j==minIndex: Anum[maxIndex]=Anum[i] Anum[i]=amax Anum[minIndex]=Anum[i] Anum[i]=amin Totalswap+=2 TotalCompare+=1 i+=1 continue elif i!=minIndex or j!=maxIndex : if i != minIndex : Anum[minIndex]=Anum[i] Anum[i]=amin Totalswap+=1 if j != maxIndex : Anum[maxIndex]=Anum[j] Anum[j]=amax Totalswap+=1 TotalCompare+=1 i+=1 continue OutFile.write("Set"+str(setNum)+":\n") for i in range(0,len(Anum)-1): OutFile.write(str(int(Anum[i]))+",") OutFile.write(str(int(Anum[len(Anum)-1]))+"\n") OutFile.write("Total Excution Time is : "+str(clock()-start)) OutFile.write("\ncomparisons are : "+str(TotalCompare)) OutFile.write("\nSwappings are : "+str(Totalswap)) memUsed = sys.getsizeof(InFile) + sys.getsizeof(OutFile)+ sys.getsizeof(start)+ sys.getsizeof(Anum)+ sys.getsizeof(Totalswap) + sys.getsizeof(TotalCompare)+sys.getsizeof(minIndex) OutFile.write("\nMemory used : "+str(memUsed)+" Bytes") InFile.close() OutFile.close() print "Check Your Output File : out_1_sec10_1B.txt is Generated" InFile.close() OutFile.close() Better_Selection_Sort()