مرتبسازی میتواند دشوار باشد، بهویژه اگر لیست شما حاوی بستهبندیهای شی (،،،،،،، ) به
سپس پیاده سازی اینترفیس را تعریف می کنیم
List
جای Byte
انواع دادههای عددی اولیه باشد. من پیشنهاد می کنم از روشی استفاده کنید که می تواند برای حل مسائل ساده یا پاسخ به سوال مصاحبه کننده بسیار مفید باشد. اول، بیایید انتخاب کنیم که چه چیزی را پر کنیم . در این مثال من از لیستی از لبه های گراف ( ) از یک ساختار داده ساده استفاده خواهم کرد : Integer
Short
Long
Double
Float
List
Edges
Graph
// Очень простой класс Edge (рёбро графа)
public class Edge {
public Vertex src;
public Vertex dst;
public double cost;
// создание ребра между двух вершин
Edge(Vertex s, Vertex d, double c) {
src = s;
dst = d;
cost = c;
}
}
// Список рёбер
Edge[] edges = graph.getEdges();
گراف چیست؟ در ریاضیات گسسته، یک گراف به عنوان یک جفت مجموعه تعریف می شود ( احتمالاً برای کسانی که به انتزاعات ریاضی عادت ندارند، چنین تعریفی چندان واضح نخواهد بود، بنابراین بگذارید ساده تر بگوییم: گراف مجموعه ای از رئوس و یال هایی است که آنها را به هم متصل می کند. یک مثال خوب از یک نمودار که بلافاصله آن را از قلمرو انتزاع به قلمرو مواد می برد، نقشه خطوط راه آهن است. رئوس چنین نموداری ایستگاه هستند . خوب، مسیرهای بین آنها لبه هستند . |
java.util.Comparator
:
class SortByCost implements Comparator<Edge> {
public int compare(Edge a, Edge b) {
if ( a.cost < b.cost ) return -1;
else if ( a.cost == b.cost ) return 0;
else return 1;
}
}
در این مثال، یالهای نمودار را بر اساس وزن یا فاصله راس src (منبع) تا راس dst (مقصد) مرتب میکنیم. در نهایت از روش استاندارد استفاده می کنیم java.util.Arrays.sort ()
:
Arrays.sort(edges, new SortByCost())
اکنون ورق ما پر از اشیا Edges
به ترتیب صعودی (از کوچکترین به بزرگ) مرتب شده است. نویسنده راه حل Ethan Arrowood است.
GO TO FULL VERSION