算法
文章平均质量分 66
qq_26919527
这个作者很懒,什么都没留下…
展开
-
选择排序
代码如下: #include using namespace std; void select_sort(int *arr, int n) { int i, j; int max; for (i = 0; i < n - 1; i++) { max = i; for (j = max + 1; j < n; j++) { if (arr[max] > arr[原创 2015-11-08 20:43:53 · 259 阅读 · 0 评论 -
桶排序
#include #include #include #define BASE 10 using namespace std; //桶中元素链表 typedef struct entry { int element; struct entry *next; }ENTRY; //维护每个桶中元素数目,并且指向第一个元素 typedef struct buc { int size; ENT原创 2015-11-28 16:18:00 · 233 阅读 · 0 评论 -
基数排序
#include #include #include #define BASE 10 using namespace std; void base_sort(int arr[], int n, int num_length) { int i = 1; int flag = 1; while (i <= num_length) { int length = 1; int A = s原创 2015-11-19 22:28:10 · 238 阅读 · 0 评论 -
堆排序
示意图如下: 代码如下: #include #include using namespace std; void keep_heap(int arr[], int i,int heap_size) { int Left = i * 2; int Right = 2 * i +1 ; int原创 2015-11-18 22:38:30 · 291 阅读 · 0 评论 -
快速排序
示意图如下: 下标0暂存i,不参与排序 代码如下: #include //#include using namespace std; int partition(int arr[], int begin_index, int end_index) { int key = arr[end_index]; int i = begin_index-1; for原创 2015-11-01 16:35:12 · 286 阅读 · 0 评论 -
计数排序
示意图如下: 代码如下: #include //#include using namespace std; void counting_sort(int arr1[], int arr2[], int temp_arr[], const int arr_num, const int bigest_num) { for (int i = 0; i <= bige原创 2015-11-01 14:15:51 · 231 阅读 · 0 评论 -
插入排序
示意图如下: 代码如下: #include //#include using namespace std; void insert_sort(int arr[],int length) { for (int i = 1; i < length; i++) { int key原创 2015-10-31 22:29:58 · 231 阅读 · 0 评论 -
希尔排序
代码如下: #include using namespace std; void shell_sort(int arr[], int n) { int flag,i,j,length = n; while (length > 1) { length = length / 2; do{ flag = 0; for (i = 0; i < n - length;原创 2015-11-10 21:26:27 · 224 阅读 · 0 评论 -
归并排序
示意图如下: 代码如下: #include using namespace std; void merge(int A[], int B[], int arr[], int lengthA, int lengthB) { int i = 0, j = 0,count=0; while (count<lengthA+lengthB) { if (A[i]原创 2015-11-10 22:15:55 · 264 阅读 · 0 评论 -
欧几里得算法
#include using namespace std; int Eucld(int a, int b) { if (a < b) { int t = a; a = b; b = t; } if (b == 0) return a; else { int t = b; b = a%t; a = t; return Eucld(a, b); }原创 2015-12-03 22:50:00 · 343 阅读 · 0 评论