![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 66
qq_26919527
这个作者很懒,什么都没留下…
展开
-
选择排序
代码如下: #includeusing 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 · 245 阅读 · 0 评论 -
桶排序
#include#include#include#define BASE 10using namespace std;//桶中元素链表typedef struct entry{ int element; struct entry *next;}ENTRY;//维护每个桶中元素数目,并且指向第一个元素typedef struct buc{ int size; ENT原创 2015-11-28 16:18:00 · 231 阅读 · 0 评论 -
基数排序
#include#include#include#define BASE 10using 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 · 237 阅读 · 0 评论 -
堆排序
示意图如下: 代码如下: #include#includeusing 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 · 276 阅读 · 0 评论 -
快速排序
示意图如下:下标0暂存i,不参与排序代码如下:#include//#includeusing 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 · 271 阅读 · 0 评论 -
计数排序
示意图如下:代码如下:#include//#includeusing 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 · 230 阅读 · 0 评论 -
插入排序
示意图如下: 代码如下:#include//#includeusing namespace std;void insert_sort(int arr[],int length){ for (int i = 1; i < length; i++) { int key原创 2015-10-31 22:29:58 · 230 阅读 · 0 评论 -
希尔排序
代码如下: #includeusing 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 · 221 阅读 · 0 评论 -
归并排序
示意图如下: 代码如下: #includeusing 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 · 260 阅读 · 0 评论 -
欧几里得算法
#includeusing 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 · 339 阅读 · 0 评论