java程式設計師面試筆試寶典8 3排序

2021-08-20 08:37:08 字數 2099 閱讀 6165

1如何進行選擇排序

1)對於給定的一組紀錄,經過第一輪比較得到最小的紀錄將該紀錄與第乙個紀錄的位置進行交換。

2)接著對不包括第乙個紀錄以外的其他紀錄進行第二輪比較,得到最小的紀錄並與第二個紀錄進行位置交換。

3)重複該過程,直到進行比較的紀錄只有乙個時為止。

以陣列為例

public

class testsort }}

public

static

void

main(string args) ;

//int a = ;

selectsort(a);

for (i = 0; i < a.length; i++)

system.out.println("\n");

}}結果:

1327

3849

6576

97

2.如何進行插入排序:

對於給定的一組紀錄,初始時假設第乙個紀錄自成乙個有序序列,其餘紀錄為無序序列。

接著從第二個紀錄開始,按照紀錄的大小依次將當前處理的紀錄插入到其之前的有序序列中,直至最後乙個紀錄插入到有序序列中為止。

以陣列為例

public

class testsort

}a[j] = temp;}}

}public

static

void

main(string args) ;

insertsort(array);

for (int i = 0; i < array.length; i++)

}}結果:

1327

3849

6576

97

3.如何進行氣泡排序?

對於給定的n個紀錄,從第乙個紀錄開始依次比較相鄰兩個紀錄進行比較,當前面的紀錄大於後面的紀錄時,交換位置

進行一輪比較和換位後,n個紀錄中的最大記錄將位於第n位

然後對前(n-1)個記錄進行第二輪比較

重複該過程直到進行比較的記錄只剩下乙個為止。

public

class maxmin

}*/for (j=1;j}}}

public static void main(string args) ;

bubblesort(a);

for (int i = 0; i < a.length; i++)

}}結果:01

2345

6789

4.如何進行歸併排序?

5.如何進行快速排序?

採用分而治之的思想,把大的拆分為小的,小的拆分為更小的。

對於一組給定的記錄,通過一趟排序後,將原序列分為兩個部分,其中前一部分的所有記錄均比後一部分的所有記錄小

然後再依次對前後兩部分的記錄進行快速排序,直到序列中所有記錄均有序為止。

public

class test

i = low;

j = high;

index = array[i];

while(iwhile(iarray[j]>=index)

if(iarray[i++]=array[j];

}while(iarray[i]if(iarray[j--] = array[i];}}

array[i] = index;

sort(array, low, i-1);

sort(array, i+1, high);

}public

static

void quicksort(int

array)

public

static

void main(string args) ;

int len = a.length;

quicksort(a);

for (i = 0; i < len; i++)

}}結果:01

2345

6789

程式設計師面試寶典 8 3 打靶

程式設計師面試寶典 面試例題1 乙個射擊運動員打靶,靶一共有 10環,連開 10槍打中 90環的可能性有多少種?請用遞迴演算法程式設計實現。中國某著名通訊企業 h面試題 解析 靶上一共有 10種可能 1環到 10環,還有可能脫靶,那就是 0環,加在一起共 11種可能。這是一道考迴圈和遞迴的面試題。我...

Java程式設計師面試寶典筆記

第六章1.變數必須先初始化後才能使用。2.byte short 和char 型別的運算操作首先會把這些值轉換為int 型別,然後對int 型別進行運算,最後得到int 型別的結果。3.靜態方法裡只能呼叫靜態方法 包括main 方法 4.main 方法必須加public 修飾,如果不加則預設為prot...

程式設計師面試寶典

據統計,80 的簡歷都是不合格的。不少人事管理者抱怨收到的許多簡歷在格式上很糟糕。簡歷應該如何做到在格式上簡潔明瞭,重點突出?求職信應該如何有足夠的內容推銷自己?如何控制長度,言簡意賅?相信讀了本章你會對簡歷的撰寫有乙個新的認識。2.1 簡歷注意事項 1 簡歷不要太長 一般的簡歷普遍都太長。其實簡歷...