26 lines
		
	
	
		
			513 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			26 lines
		
	
	
		
			513 B
		
	
	
	
		
			Go
		
	
	
	
	
	
|   | package whisper | ||
|  | 
 | ||
|  | import "sort" | ||
|  | 
 | ||
|  | type sortedKeys struct { | ||
|  | 	k []int32 | ||
|  | } | ||
|  | 
 | ||
|  | func (self *sortedKeys) Len() int           { return len(self.k) } | ||
|  | func (self *sortedKeys) Less(i, j int) bool { return self.k[i] < self.k[j] } | ||
|  | func (self *sortedKeys) Swap(i, j int)      { self.k[i], self.k[j] = self.k[j], self.k[i] } | ||
|  | 
 | ||
|  | func sortKeys(m map[int32]Hash) []int32 { | ||
|  | 	sorted := new(sortedKeys) | ||
|  | 	sorted.k = make([]int32, len(m)) | ||
|  | 	i := 0 | ||
|  | 	for key, _ := range m { | ||
|  | 		sorted.k[i] = key | ||
|  | 		i++ | ||
|  | 	} | ||
|  | 
 | ||
|  | 	sort.Sort(sorted) | ||
|  | 
 | ||
|  | 	return sorted.k | ||
|  | } |