面試題彙總 排序方法

2021-09-11 06:32:49 字數 1958 閱讀 2064

氣泡排序,選擇排序,快速排序,插入排序,基數排序,桶排序

* 依次比較相鄰的兩個數,將小數放在前面,大數放在後面

* 氣泡排序,具有穩定性

* 時間複雜度為o(n^2)

public class main 

system.out.print("排序前的陣列為");

for(int i : sort)

system.out.println();//換行

//呼叫方法

buddlesort(sort);

system.out.print("排序後的陣列為");

for(int i : sort)

}//氣泡排序方法

private static void buddlesort(int sort)}}

}}

* 每一趟從待排序的資料元素中選出最小(或最大)的乙個元素,

* 順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。

* 選擇排序是不穩定的排序方法。

public class main 

system.out.print("排序前的陣列為");

for (int i : sort)

system.out.println();

//呼叫方法

selectsort(sort);

system.out.print("排序後的陣列為");

for (int i : sort)

}// 選擇排序方法

private static void selectsort(int sort);//自定義陣列

system.out.print("排序前的陣列為:");

for (int data : sort)

system.out.println();

//呼叫方法

quicksort(sort, 0, sort.length - 1);

system.out.print("排序後的陣列為:");

for (int data : sort)

}/**

* 快速排序

* @param sort 要排序的陣列

* @param start 排序的開始座標

* @param end 排序的結束座標

*/public static void quicksort(int sort, int start, int end)

while (sort[i] < key && i < end)

if (i < j)

}// 如果左邊索引比右邊索引要大,說明第一次排序完成,將sort[j]與key對換,

// 即保持了key左邊的數比key小,key右邊的數比key大

if (i > j)

//遞迴呼叫

if (j > start && j < end)

}}

* 直接插入排序

* 將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料

* 演算法適用於少量資料的排序,時間複雜度為o(n^2)。是穩定的排序方法。 

public class directmain 

system.out.print("排序前的陣列為");

for (int i : sort)

system.out.println();

//呼叫方法

directinsertsort(sort);

system.out.print("排序後的陣列為");

for (int i : sort)

}//直接插入排序

private static void directinsertsort(int sort)

sort[index + 1] = temp;}}

}

面試題彙總

1.佇列先進先出,棧先進後出。2.對插入和刪除操作的 限定 棧是限定只能在表的一端進行插入和刪除操作的線性表。佇列是限定只能在表的一端進行插入和在另一端進行刪除操作的線性表。從 資料結構 的角度看,它們都是線性結構,即資料元素之間的關係相同。3.遍歷資料速度不同。順序表是在記憶體中開闢一段連續的空間...

面試題彙總

1 integer和int的區別?2 和equals的區別?int a 50,integer b 50 a b?integer c 50,b c?3 get和post的區別?4 用執行緒池建立執行緒和自己建立執行緒的區別,好處是什麼?5 利用int型陣列實現乙個棧,並實現出棧和入棧操作?要求時間複雜...

面試題彙總

題目都是我自己寫的,所以也不一定是完全正確的,因為能有很多細節沒有考慮,如果大家發現了希望指正 1 完美世界2017 刪除vector中所有偶數 最想去的地方呀。void deleteeven vector v2 else if iter 2 0 else 2 編寫類string的建構函式,析構函式...