常用排序演算法整理

2021-06-21 16:21:06 字數 561 閱讀 6114

1. 氣泡排序:

void bubble_sort(int s, int len)

}

2. 插入排序:

void insert_sort(int s, int len)

}

3.快速排序:

採用分治法,先選取乙個數pivot,把小於pivot的數移到它的左邊,大於pivot的數移到它的右邊,然後進行遞迴呼叫

int partition(int s,int low,int high)

while (i <= m)

temp[k++] = a[i++];

while (j <= n)

temp[k++] = a[j++];

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

a[first + i] = temp[i];

}void merge_sort(int a, int first, int last, int temp)

}

排序 排序演算法整理

經常零零散散的用到排序演算法,將幾類常見的總結下來 時間複雜度o n 2 空間複雜度o 1 穩定排序 param arr public static void insersort int arr else arr j 1 tmp 氣泡排序 時間複雜度 o n 2 空間複雜度o 1 穩定排序 para...

整理了下常用的排序演算法

例子中都是從小到大排序的。1 插入排序 1.1 直接插入排序 將乙個記錄插入到乙個有序的列表中,得到乙個新的,記錄數加一的新的列表。進行關鍵字比較和移動的次數約 n 2 4,時間複雜度o n 2 1.2 折半插入排序 在直接插入排序的基礎上減少比較的次數。其中 查詢 的動作用 折半查詢 來實現。只能...

排序演算法整理

template void cinsertsort mysort function compare template void cselectsort mysort function compare swap datas i datas id void cshellsort mysort funct...