Найдено результатов: 6

Как вы сортируете словарь по значению?

Мне часто приходится сортировать словарь, состоящий из ключей & значений, по значению. Например, у меня есть hash слов и соответствующих частот, которые я хочу упорядочить по частоте.

Есть SortedList , который хорош для одного значения (скажем, частоты), и я хочу сопоставить его со словом.

SortedDictionary заказы по ключу, а не по значению. Некоторые прибегают к пользовательскому классу, но есть ли более чистый способ?

c#   .net   sorting   dictionary    

1040   18   16:03, 1st July, 2020


Строгость в захвате тестовых случаев для модульного тестирования

Допустим, у нас есть простая функция, определенная на псевдо-языке.

List<Numbers> SortNumbers(List<Numbers> unsorted, bool ascending);

Мы передаем несортированный список чисел и логическое значение, указывающее порядок сортировки по возрастанию или убыванию. Взамен мы получаем упорядоченный список чисел.

По моему опыту, некоторые люди лучше улавливают граничные условия, чем другие. Вопрос заключается в следующем:"как вы узнаете, когда вы 'done' захватываете тестовые случаи"?

Мы можем начать перечислять случаи сейчас, и какой-нибудь умный человек, несомненно, подумает о 'one more' случае, который не охватывается ни одним из предыдущих.

unit-testing   testing   sorting    

480   5   23:31, 13th August, 2020


Как ранжировать массив (Сортировать) по значению? *With в twist*

Я хотел бы отсортировать массив в порядке возрастания, используя C/C++ . Результатом является массив, содержащий индексы элементов. Каждый индекс соответствует расположению элемента в отсортированном массиве.

Пример

Input:  1, 3, 4, 9, 6
Output: 1, 2, 3, 5, 4

Edit: я использую процедуру сортировки shell. Индексы повторяющихся значений выбираются произвольно, исходя из того, какие повторяющиеся значения являются первыми в исходном массиве.

Обновление:

Несмотря на все мои усилия, я не смог реализовать алгоритм сортировки для массива указателей. Текущий пример не будет компилироваться.

Может, кто-нибудь объяснит мне, что случилось?

Я был бы очень признателен за помощь!

void SortArray(int ** pArray, int ArrayLength) 
{
    int i, j, flag = 1;    // set flag to 1 to begin initial pass
    int * temp;    // holding variable orig with no *

    for (i = 1; (i <= ArrayLength) && flag; i++)
    {
        flag = 0;
        for (j = 0; j < (ArrayLength - 1); j++)
        {
            if (*pArray[j + 1] > *pArray[j])    // ascending order simply changes to <
            { 
                &temp = &pArray[j];    // swap elements
                &pArray[j] = &pArray[j + 1];    //the problem lies somewhere in here
                &pArray[j + 1] = &temp;
                flag = 1;    // indicates that a swap occurred.
            }
        }
    }
};

c++   c   arrays   sorting    

416   1   22:58, 9th August, 2020


Сортировка IList в C#

Так что сегодня я столкнулся с интересной проблемой. У нас есть веб-служба WCF, которая возвращает IList. На самом деле ничего особенного, пока я не захотел разобраться с этим.

Оказывается, интерфейс IList не имеет встроенного метода сортировки.

В конечном итоге я использовал метод ArrayList.Adapter(list).Sort(new MyComparer()) , чтобы решить эту проблему, но он просто показался мне немного "ghetto".

Я играл с написанием метода расширения, а также с наследованием от IList и реализацией моего собственного метода Sort(), а также приведением к списку, но ни один из них не казался слишком элегантным.

Поэтому мой вопрос заключается в том, есть ли у кого-нибудь элегантное решение для сортировки IList

c#   generics   sorting   ilist    

510   14   08:11, 8th August, 2020


Как я могу написать вид хуже, чем O (n!)

Я написал O (n!) сортировка для моего развлечения, которое не может быть тривиально оптимизировано, чтобы работать быстрее, не заменяя его полностью. [И нет, я не просто рандомизировал элементы, пока они не были отсортированы].

Как я мог бы написать еще худший вид Big-O, не просто добавляя посторонний мусор, который можно было бы вытащить, чтобы уменьшить сложность времени?

http://en.wikipedia.org/wiki/Big_O_notation имеет различные временные сложности, отсортированные в порядке возрастания.

Edit: я нашел код, вот мой O (n!) детерминированная сортировка с забавным хак для создания списка всех комбинаций списка. У меня есть немного более длинная версия get_all_combinations, которая возвращает итерацию комбинаций, но, к сожалению, я не мог сделать это одним оператором. [Надеюсь, я не ввел ошибки, исправляя опечатки и удаляя подчеркивания в приведенном ниже коде]

def mysort(somelist):
    for permutation in get_all_permutations(somelist):
        if is_sorted(permutation):
            return permutation

def is_sorted(somelist):
    # note: this could be merged into return... something like return len(foo) <= 1 or reduce(barf)
    if (len(somelist) <= 1): return True
    return 1 > reduce(lambda x,y: max(x,y),map(cmp, somelist[:-1], somelist[1:]))

def get_all_permutations(lst):
    return [[itm] + cbo for idx, itm in enumerate(lst) for cbo in get_all_permutations(lst[:idx] + lst[idx+1:])] or [lst]

sorting   big-o    

456   2   17:33, 27th August, 2020


Почему **sort** не сортирует то же самое на каждой машине?

Использование одной и той же команды сортировки с одинаковыми входными данными приводит к различным результатам на разных машинах. Как мне это исправить?

bash   unix   sorting   ksh    

431   4   08:45, 2nd August, 2020