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...