Я создал псевдоним - typealias частотSymbol = (String, Double) . Я создал массив, используя псевдоним в качестве типа данных частотSymbol. Затем я заполнил этот массив элементами, и теперь мне нужно отсортировать этот массив по элементам Double. Как мне это сделать?
typealias frequenciesSymbol = (String, Double)
// МЫ СЧИТАЕМ ЧАСТОТУ ВСТРЕЧИ КАЖДОГО СИМВОЛА
var frequencies2 = [Double](repeating: 0, count: 33)
for c in outputText.unicodeScalars {
switch c {
case "а"..."я":
frequencies2[Int(c.value - UnicodeScalar("а").value)] += 1
default:
break
}
}
// ЧАСТОТА ПЕРЕДАЧИ В%
for i in 0..<(frequencies2.count) {
frequencies2[i] = (frequencies2[i] * 100) / Double(outputText.count)
}
// СОЗДАТЬ Массив, в котором мы формируем ЧАСТОТУ В СООТВЕТСТВИИ С СИМВОЛАМИ С СИМВОЛАМИ
var frequenciesOutputText = [frequenciesSymbol]()
// ПИСАТЬ Массив значений ЧАСТОТЫ ПО СИМВОЛУ
for i in 0..<(frequencies2.count-1) {
frequenciesOutputText.append((rus[i], Double(frequencies2[i])))
print("\(rus[i]) - \(frequencies2[i])%")
}
// СОРТИРОВАТЬ Массив по частоте
Я хочу получить что-то вроде этого
("о", 10.97)% ("е", 8.45)% ("а", 8.01)% ("и", 7,35)% ("н", 6,7)% ("т", 6,26)% ("с", 5,47)% ("р", 4,73)% ("в", 4,54)% ("л", 4,4)% (" к ", 3,49)% (" м ", 3,21)% (" д ", 2,98)% (" п ", 2,81)% (" у ", 2,62)% (" я ",2,01)% ("ы", 1,9)% ("ь", 1,74)% ("г", 1,7)% ("з", 1,65)% ("б", 1,59)% ("ч", 1,44)% ("й", 1,21)% ("х", 0,97)% ("ж", 0,94)% ("ш", 0,73)% ("ю", 0,64)% ("ц", 0,48)% ("щ", 0,36)% ("э", 0,32)% ("ф", 0,26)% ("ъ", 0,04)%