//1,氣泡排序
void
bubblesort
(int arr,
int len)
}}
//2,選擇排序
void
selectsort
(int arr,
int len)
swap
(arr[i]
, arr[imin]);
}}
//3,插入排序
void
insertsort
(int arr,
int len)
arr[j +1]
= key;
}}
//4,希爾排序
void
shellsort
(int arr,
int len)
//對每乙個增值的所有待排序序列進行插入排序
while
(h >=1)
arr[k+h]
= tem;}}
//將增值遞減
h = h /3;
}}
//5,歸併排序
void
mergesort
(int arr,
int li,
int ri,
int tem)
//將左或右陣列中未放完的資料繼續放入臨時陣列中
while
(i<=mid)
while
(j<=ri)
//將臨時陣列的值複製到原陣列對應的位置,即li到ri中間
for(
int mi = li;mi<=ri;mi++
)}
//6,快速排序
void
quicksort
(int arr,
int li,
int ri)
// 如果隊尾元素小於tmp了,需要將其賦值給low
arr[low]
= arr[hight]
;// 當隊首元素小於等於tmp時,向後挪動low指標
while
(low < hight&&arr[low]
<= tem)
// 當隊首元素大於tmp時,需要將其賦值給high
arr[hight]
= arr[low];}
// 外層迴圈結束時low和high相等,此時的low或high就是tmp的正確索引位置
// 由原理部分可以很清楚的知道low位置的值並不是tmp,所以需要將tmp賦值給arr[low]
arr[low]
= tem;
// 進行迭代對low之前和之後的陣列進行相同的操作使整個陣列變成有序
quicksort
(arr, li, low -1)
;quicksort
(arr, low +
1, ri)
;}
//7,堆排序
void
heapadjust
(int arr,
int si,
int ei)}}
void
heapsort
(int arr,
int len)
for(
int i = len -
1; i >
0; i--
)}
//8,計數排序
void
countsort
(int arr,
int len)
// 建立差值大小的陣列
int d = vmax - vmin+1;
int*tem =
newint
[d];
for(
int j =
0; j < d; j++
)for
(int i =
0;i)int k =0;
for(
int i =
0; i < d; i++)}
}
#include
"stdafx.h"
#include
#include
using
namespace std;
//資料列印
void
printdata
(int arr,
int n)
cout << endl;
}int
main()
;int
*tem =
newint[10
];cout <<
"sort before: "
;printdata
(nums, n)
; cout <<
"sort after: "
;// bubblesort(nums, n);
// selectsort(nums, n);
// insertsort(nums, n);
// shellsort(nums, n);
// mergesort(nums, 0, n - 1, tem);
// quicksort(nums, 0, n - 1);
// heapsort(nums, n);
printdata
(nums, n)
; cout << endl;
delete
tem;
system
("pause");
return0;
}
十大排序演算法
1.非線性時間類排序 時間複雜度未突破 0 nlog 2n 不穩定的四個排序演算法 選擇排序 0 n2 希爾排序 0 n1.3 希爾排序實現python 快速排序 0 n log2 n 0 nlog 2n 0 nlog 2 n 快速排序實現c python 堆排序 0 n log2 n 0 nlog...
十大排序演算法
排序規則 從左至右依次增大 一 基於比較的排序演算法 插入排序 逐個遍歷未排序序列,將其在已排序序列中從右到左比較,直到遇到比自己小的數,然後將元素插入到那個數的後面,有序序列從左向右生長。選擇排序 在未排序序列中選擇最小的元素,將其插入到已排序序列的末尾,有序序列從左向右生長。氣泡排序 從左至右逐...
十大排序演算法
github 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序...