面試常用演算法之排序

2021-08-20 19:14:14 字數 609 閱讀 1168

1:氣泡排序(bubblesort)

氣泡排序是每次將亂序中的最大的數字通過兩兩交換的方式往後移動,直到序列有序為止。猶如水中的氣泡從下往上浮時,越來越大。該演算法共執行了n趟,每趟執行n-i次比較,所以其複雜度為o(n^2)。

基本的氣泡排序演算法程式如下所示:

//氣泡排序

void bubblesort(int a,int n)

void heapify(int a, int i, int size) // 從a[i]向下進行堆調整

}int buildheap(int a, int n) // 建堆,時間複雜度o(n)

void heapsort(int a, int n)

}int main()

;// 從小到大堆排序

int n = sizeof(a) / sizeof(int);

heapsort(a, n);

printf("堆排序結果:");

for (int i = 0; i < n; i++)

printf("\n");

return 0;

}

面試常用排序演算法

public class sort 因為最後結束的時候,j又被剪了一次,所以j要加1 插入 array j 1 temp 氣泡排序 public void bubblesort int array,int length 直接選擇排序 public void selectsort int array,...

面試題之 常用排序演算法

以下排序預設排序效果是從小到大,待排序序列 3,4,63,4,9,0,1,32,2 基本思想 依次交換相鄰兩個元素,使得大的資料往下沉 或小的資料往上附浮 第一步 比較相鄰的兩個元素,如果前者比後者大,則交換兩元素。否則,不交換。第二步 重複第一步直到最後兩個元素比較完成,此時,最大的元素已經在最後...

常用演算法之排序演算法 選擇排序

目錄 直接選擇排序 堆排序 思想 每趟從待排序的記錄序列中選擇關鍵字最小的記錄放置到已排序表的最前位置,直到全部排完。關鍵問題 在剩餘的待排序記錄序列中找到最小關鍵碼記錄。簡單的選擇排序 1 基本思想 在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換 然後在剩下的數當中再找最小的與第二個位置...