java書籍入門 java如何實(shí)現(xiàn)快速排序?
java如何實(shí)現(xiàn)快速排序?快速排序原則:選擇一個(gè)鍵值作為基準(zhǔn)值。小于基準(zhǔn)值的順序在左邊(一般無序),大于基準(zhǔn)值的順序在右邊(一般無序)。通常,選擇序列的第一個(gè)元素。一個(gè)循環(huán):從后向前比較,與參考值和最
java如何實(shí)現(xiàn)快速排序?
快速排序原則:選擇一個(gè)鍵值作為基準(zhǔn)值。小于基準(zhǔn)值的順序在左邊(一般無序),大于基準(zhǔn)值的順序在右邊(一般無序)。通常,選擇序列的第一個(gè)元素。
一個(gè)循環(huán):從后向前比較,與參考值和最后一個(gè)值進(jìn)行比較,如果交換位置小于參考值,則繼續(xù)比較下一個(gè),直到找到小于參考值的第一個(gè)值。找到此值后,將其從前到后進(jìn)行比較。如果存在大于參考值的值,則交換位置。如果沒有,則繼續(xù)比較下一個(gè)值,直到找到比參考值大的第一個(gè)值。直到從前面到后面的比較索引>;從后面到前面的比較索引結(jié)束第一個(gè)循環(huán)。此時(shí),左右兩側(cè)依次為參考值。
然后比較左右順序并重復(fù)上述循環(huán)。
javaset集合的值可以排序嗎?
我們知道集合是無序的,可以使用TreeSet類。樹集排序的規(guī)則是什么?1treeset支持兩種排序方法:自然排序和自定義排序。默認(rèn)情況下,TreeSet采用自然排序。自然排序:TreeSet調(diào)用set元素的CompareTo(objectobj)方法來比較元素的大小為什么set元素有CompareTo方法?因?yàn)閟et element對象實(shí)現(xiàn)了可比較的接口。此方法返回一個(gè)整數(shù)值。當(dāng)一個(gè)對象調(diào)用此方法時(shí),它會與另一個(gè)對象進(jìn)行比較。例如,obb1。CompareTo(obb2)如果返回0,則表示兩個(gè)對象相等,例如如果該方法返回正整數(shù),則表示obji1大于obji2。如果該方法返回負(fù)整數(shù),則表示obji1小于obji2,因此需要使用TreeSet集合進(jìn)行自然排序,并且元素必須實(shí)現(xiàn)可比較接口。但是,一些常見的Java類已經(jīng)實(shí)現(xiàn)了該接口,例如:stringcharacterboolean datetimebigdecimalbiginteger等,例如:TreeSet<string>Ts=new reeSet<string>()ts.添加(“b”)ts.添加(“c”)ts.添加(“a”)系統(tǒng)輸出打?。═S)結(jié)果:ABC