Java陣列中的排序和二分查詢

2021-08-14 13:30:47 字數 1403 閱讀 3898

【題目】

建立乙個關於日期的類,其中包括日期比較的類,並且重寫tostring方法。在main函式中建立乙個find()方法,利用二分查詢的方法找出日期,若有則返回其在陣列中的位置,若不存在則給出提示。

一、tostring方法的重寫

tostring回反應當前物件的自我描述。

在system.out.print()方法中如果插入的是乙個對,就會呼叫物件中的tostring方法。

package testcode123;

class people

}public class testcode

}

輸出為 testcode123.people@6f7a29a1

如果在類中重寫tostring方法 

class people

public string tostring()

}

輸出為 我的名字是:小明     所以我們可以通過重寫tostring方法來實現我們想要的輸出。

二、日期的排序(自定義排序的書寫)

在氣泡排序的基礎上,可以在類中建立cmp()方法來實現日期之間的比較。

順序為 年份--》月份--》日期

返回不同的值,來判日期之間的大小。若比當前日期大則返回1,若相同返回0,小則返回-1。

public int cmp(date a)
三、二分查詢

二分查詢建立在乙個有序序列上,每次查詢序列的中間值進行比較,並更新左右位置的數值。

middle = left + ( right - left) / 2

**:

package testcode123;

class date

public int cmp(date a)

public string tostring()

}public class testdatesort

date test1 = new date(2010,6,3);

int l = find(test1,days);

if(l==-1)

system.out.println("未找到當前日期!!!");

else

system.out.println(l); }

public static date bubblesort(date a)

}} return a; }

public static int find(date obj,date cal)

else if(obj.cmp(cal[middle])>0)else

+ " " +right +" "+ middle);

} return -1;

}}

二分查詢排序 JAVA

最壞情況 logn 最好情況 o 1 平均時間複雜度為o logn 二分查詢也稱折半查詢,或者對半查詢 binary search 是一種效率較高的查詢方法。要求 1 必須採用順序儲存結構 2 必須按關鍵字大小有序排列 將n個元素分成大致相等的兩部分,取a n 2 與x做比較,如果x a n 2 則...

java陣列二分查詢法

1.新建halffind類,在main方法中,呼叫二分查詢法。public class halffind 折半查詢對於陣列的是有序數列 system.out.println halfserach a,7 system.out.println halfserach a,2 折半查詢 public st...

二分查詢和排序

二分查詢,主要是針對排序問題進行查詢 len sizeof a sizeof a 0 我們先設定 int left 0 int right len 1 int mid left right 2 如果k大於mid,那麼 left mid 1 小於 right mid 1 include int sea...