Как правило, вы просто используете тот же алгоритм пузырьковой сортировки, что и в обычном режиме. Здесь просто настроено условие сравнения, чтобы посмотреть и ключ, и значение, чтобы определить, что больше, чем что, то есть сначала сравнить ключи, и если они ' затем сравните значения, затем сравните значения, если ключи не совпадают, затем используйте разницу в значениях, чтобы получить результат обмена или не менять. Хотя пузырьковая сортировка плоха с точки зрения эффективности, если вы используете ее в реальном сценарии.
Джон получил пост до меня, но в основном то, что он написал, выглядит правильно, за исключением того, что вы хотите сложное условие для if внутри вложенного цикла, например
if(key1<key2)
keyList.swap(i,j)
else if(keyList[key1]<keyList[key2])
keyList.swap(i,j)
конечно, поскольку он также заявил, как эти ключи / значения фактически извлекаются / используются, будет зависеть от языка, которого нет в вопросе или тегах.