總結《大話資料結構》,本文相關**均由c++編寫。
void bubblesort(int a, int num)
}}
void selectedsort(int a, int num)
a[j+1] = temp;
}}
void shellsort(int a, int n)
a[j + jump] = temp;
}} } while (jump > 1);
}
void adjust_heap(int* a, int node, int size)
}void heap_sort(int* a, int len)
}
void merge(int* a, int start, int mid, int end)
while (i <= mid)
tmp[k++] = a[i++];
while (j <= end)
tmp[k++] = a[j++];
// 將排序後的元素,全部都整合到陣列a中。
for (i = 0; i < k; i++)
a[start + i] = tmp[i];
delete tmp;
}void mergesortup2down(int* a, int start, int end)
int partition(int a, int i, int j)
swap(a[i], a[j]);
while (i < j&& a[i] <= temp)
swap(a[i], a[j]);
} return i;//這裡不管是返回i還是j都是一樣的,因為最後會相等
}void quicksort(int a, int low, int high)
n2)o(n)
o(n 2n^
n2)o(1)
穩定簡單選擇排序
o(n 2n^
n2)o(n2n^
n2)o(n2n^
n2)o(1)
穩定直接插入排序
o(n 2n^
n2)o(n)
o(n 2n^
n2)o(1)
穩定希爾排序
o(nlogn)~o(n2n^
n2)o((n
1.5n^
n1.5
)o(n2n^
n2)o(1)
不穩定堆排序
o(nlogn)
o(nlogn)
o(nlogn)
o(1)
不穩定歸併排序
o(nlogn)
o(nlogn)
o(nlogn)
o(n)
穩定快速排序
o(nlogn)
o(nlogn)
o(n 2n^
n2)o(nlogn)~o(n2n^
n2)不穩定
七種排序演算法
排序方法 平均情況 最好情況 最壞情況 輔助空間 穩定性插入排序 o n 2 o n o n 2 o 1 穩定希爾排序 o n log n o n 2 o n 1.3 o n 2 o 1 不穩定選擇排序 o n 2 o n 2 o n 2 o 1 不穩定氣泡排序 o n 2 o n o n 2 o ...
七種排序演算法總結
根據排序過程中借助的主要操作,將7種內排序演算法按照下圖所示進行分類。將7種演算法的各種指標進行對比,如下表所示。從平均情況來看,顯然最後3種改進演算法要勝過希爾排序,並遠遠勝過前3種簡單演算法。從最好情況看,反而冒泡和直接插入排序要更勝一籌,也就是說,如果待排序列總是基本有序,反而不應該考慮四種複...
七種排序演算法整理
1.氣泡排序 交換排序 依次比較相鄰元素,將較大的值交換到右邊,那麼第一趟走完,陣列中的最大值已經在最後一位了,接下來就把第二大的數歸位,第三大的數歸位 public static void dubblesort int arr 2.選擇排序 交換排序 設定最小元素的索引minindex,假設當前索...