【算法导论】C++参考源码之基础排序
来源:互联网 发布:知乎过目不忘的名字 编辑:程序博客网 时间:2024/05/21 14:27
开始阅读算法导论知识,数学部分的思路没有深究,只当是了解一些算法的原理以及思路,为的是熟悉算法以及在项目中能够应用到,
没有打算对其进行学术研究,下面贴出对应我所写的C++源码,可以直接在VS2008编译器上运行。
以下代码是是插入排序,合并排序(归并排序),冒泡排序
#include <iostream>using namespace std;void insert_sort(int arry[], int size){int key;int i;for (int j = 1; j < size; ++j){key = arry[j];i = j - 1;while (i > -1 && arry[i] > key){arry[i+1] = arry[i];i = i - 1;}arry[i+1] = key;}}void merge(int A[], int p, int q, int r){int n1 = q - p + 1;int n2 = r - q;int i, j;int L[10];int R[10];for (i = 0; i < n1; ++i){L[i] = A[p + i];}for (j = 0; j < n2; ++j){R[j] = A[q + j + 1];}L[n1] = 0xFFFF;R[n2] = 0xFFFF;i = 0;j = 0;for (int k = p; k <= r; ++k){if (L[i] <= R[j]){A[k] = L[i];++i;}else{A[k] = R[j];++j;}}}void merge_sort(int A[], int p, int r){if (p < r){int q = (p + r) / 2;merge_sort(A, p, q);merge_sort(A, q+1, r);merge(A, p, q, r);}}void bubble_sort(int A[], int size){for (int i = 0; i < size; ++i){for (int j = size - 1; j > i; --j){if (A[j] < A[j-1]){swap(A[j], A[j-1]);}}}}int main(){int arry[] = {5, 2, 4, 6, 1, 3, 7, 9, 8};//int arry[] = {2, 4, 6, 1, 3, 5};int size = sizeof(arry) / sizeof(arry[0]);//insert_sort(arry, size);merge_sort(arry, 0, size-1);//bubble_sort(arry, size - 1);for (int i = 0; i < size; ++i){cout << arry[i] << endl;}return 0;}
第一次写,暂时没有发现有BUG,可以进行参考,发现BUG的同学可以在下方评论。
冒泡写错了~~~,我现在修正回来了 ——2013-8-17
- 【算法导论】C++参考源码之基础排序
- 【算法导论】C++参考源码之堆排序
- 【算法导论】C++参考源码之线性时间排序
- 【算法导论】C++参考源码之堆排序中的优先级队列
- 算法导论中的快速排序C源码~
- 【算法导论】C++源码之快速排序
- 【算法导论】C++参考源码之队列、二叉树
- 算法导论 之 插入排序[C语言]
- 算法导论 之 冒泡排序[C语言]
- 算法导论 之 归并排序[C语言]
- 算法导论 之 堆排序[C语言]
- 算法导论 之 希尔排序[C语言]
- 算法导论 之 快速排序[C语言]
- 排序算法之导论
- 快速排序--(参考算法导论p146)
- 关于堆排序(参考自算法导论)
- 七大排序问题之快速排序(参考算法导论PHP版)
- 算法导论之快速排序
- Windows远程连接的实现
- 编程之美2.9----斐波那契数列
- Eddy's mistakes解题报告
- 加锁
- 十道海量数据处理面试题与十个方法大总结
- 【算法导论】C++参考源码之基础排序
- 字符串替换
- win7安装oracle10注意事项
- 动态内存分配(详解)
- 剑指Offer算法实现之十七:合并两个排序的链表
- WINCE下进程间通信(一)
- __attribute__机制介绍
- 电影挖掘机 搜索各大视频网站API接口 自动搜索全网所有电影
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session