演算法中比較器的使用

2021-09-26 09:14:57 字數 1524 閱讀 9726

實現比較器的方法有兩種:

實現comparable,在比試中用的比較少。

人為的定義對類的比較,去實現comparator介面;

我們定義乙個學生類,定義他的name,id,age屬性,通過id和age對他進行排序,這時我們用比較器對其進行排序;前面元素減去後面元素如果為負數,則前面小排在前面。反之,則大的排在前面,為降序。

public class code_11_comparator 

}public static class idascendingcomparator implements comparator

}public static class iddescendingcomparator implements comparator

}public static class ageascendingcomparator implements comparator

}public static class agedescendingcomparator implements comparator

}public static void print(student students)

system.out.println("********************===");

}public static void main(string args);

arrays.sort(students,new idascendingcomparator());

print(students);

arrays.sort(students,new iddescendingcomparator());

print(students);

arrays.sort(students,new ageascendingcomparator());

print(students);

arrays.sort(students,new agedescendingcomparator());

print(students);

//優先順序佇列(小頂堆。 idascendingcomparator()是從小到大排序)

priorityqueueheap=new priorityqueue<>(new idascendingcomparator());

heap.add(student1);

heap.add(student2);

heap.add(student3);

while(!heap.isempty())

//紅黑樹

system.out.println("紅黑樹*****===");

treesettreeset=new treeset<>(new iddescendingcomparator());

treeset.add(student1);

treeset.add(student2);

treeset.add(student3);

while (!treeset.isempty())

}}

排序演算法中比較函式的運用

假如我們有乙個 如下,1,5 2,3 3,7 需要根據第二例排序。我們應該怎麼辦呢?這裡使用python作為範例,其他語言提供類似的泛型程式設計方法。對這個資料排序可以寫出如下 def customcmp a,b return cmp a 1 b 1 mylist a 1,5 b 2,3 c 3,7...

HEVC中比較耗時的模組

先引用unix程式設計藝術第一章的一段話 rob pike,最偉大的c語言大師之一,在 nos on c programming 中從另乙個稍微不同的角度表述了unix的哲學 原則1 你無法判定程式會在什麼地方耗費執行時間。瓶頸經常出現在想不到的地方,所以別急於亂找個地方改 除非你已經證實那兒就是瓶...

Java 中 比較的是什麼?

public class arraytest 顯然,儘管 a 與 b 物件的值相同,但是在記憶體中的位址是不同的,即兩個物件是不一樣的。再看乙個例子 public class arraytest 這是因為常量池的存在。而執行時常量池其實是屬於方法區的一部分。通俗的說,c 和 d 其實都是都是指向 a...