from time import clock import sys def Better_Selection_Sort(): InFile=open('in10_1.txt','r') OutFile=open('out_1_10_1C.txt','w') start=clock() Totalswap=0 TotalComparision=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 TotalComparision+=2 elif int(Anum[j])> int(Anum[maxIndex]): maxIndex=j TotalComparision+=2 amin=int(Anum[minIndex]) amax=int(Anum[maxIndex]) if i==maxIndex: Anum[minIndex]=int(Anum[len(Anum)-i-1]) Anum[len(Anum)-i-1]=amin Anum[maxIndex]=int(Anum[len(Anum)-i-1]) Anum[len(Anum)-i-1]=amax Totalswap+=2 TotalComparision+=1 i+=1 continue elif j==minIndex: Anum[maxIndex]=int(Anum[i]) Anum[i]=amax Anum[minIndex]=int(Anum[i]) Anum[i]=amin Totalswap+=2 TotalComparision+=1 i+=1 continue elif i!=minIndex or j!=maxIndex : if i != minIndex : Anum[minIndex]=int(Anum[i]) Anum[i]=amin Totalswap+=1 if j != maxIndex : Anum[maxIndex]=int(Anum[j]) Anum[j]=amax Totalswap+=1 TotalComparision+=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(TotalComparision)) OutFile.write("\nSwappings are : "+str(Totalswap)) memUsed = sys.getsizeof(InFile) + sys.getsizeof(OutFile)+ sys.getsizeof(start)+ sys.getsizeof(Anum)+ sys.getsizeof(Totalswap) + sys.getsizeof(TotalComparision)+sys.getsizeof(minIndex) OutFile.write("\nMemory used : "+str(memUsed)+" Bytes") InFile.close() OutFile.close() print "Check Your Output File : out_1_sec10_1C.txt is Generated" InFile.close() OutFile.close() Better_Selection_Sort()