У меня есть вектор, в котором хранятся элементы строки типа. я могу добавить элементы в вектор с помощьюСортировка строки-массива с использованием java
public void AddItem(String value)
{
data[length] = value;
length++;
}
однако я хотел бы вектор быть отсортированы в порядке возрастания когда элементы добавляются в определенном порядке, например, если я добавил эти пункты
v.AddItem("10");
v.AddItem("20");
v.AddItem("30");
v.AddItem("40");
v.AddItem("50");
v.AddItem("90");
v.AddItem("70");
v.AddItem("80");
Я ожидал бы, что «90» будет последним пунктом в списке. я попытался использовать это
for (int i = length- 1; i>1;i++)
{
if (data[length -1].compareTo(data[length]) > 0)
{
data[length-1] = temp;
data[length]=data[length -1];
temp = data[length];
}
}
и он, похоже, не работает, может кто-нибудь указать мне в правильном направлении?
Если 'data' были вектором, ваш код не будет компилироваться. Похоже, у вас есть «массив». – azurefrog
'for (int i = length-1; i> 1; i ++)' Я бы сказал ... «неправильное направление». – Tom
Я бы посмотрел на использование двоичной сортировки. Это означает, что каждая вставка только «O (logn)» в отличие от «O (nlogn)» (в среднем). – Obicere