2022年数据结构《排序算法的C++代码实现》 .pdf
《2022年数据结构《排序算法的C++代码实现》 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构《排序算法的C++代码实现》 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/ 头文件包含及命名空间引用#include using namespace std; / 函数声明void bubble_sort(int n,int length);/冒泡排序void selection_sort(int n,int length);/选择排序void insertion_sort(int n,int length);/插入排序void shell_sort(int n,int length);/希尔排序void quick_sort(int n,int length);/快速排序接口void quicksort(int n,int first,int last);/快速
2、排序void merge_sort(int n,int length);/归并排序接口void mergesort(int n,int first,int last);/归并排序void Merge(int n,int first,int middle,int last);/归并排序中的合并void base_sort(int n,int length);/基数排序接口void heap_sort(int n,int length);/堆排序接口void buildmaxheap(int n,int begin,int end);/建立最大堆void maxheapify(int n,int
3、begin,int end);/调整最大堆void Display(int n,int length,bool state);/输出函数typedef void ( * SortFuntion) (int n,int length);/排序函数指针类型/ 排序算法函数列表SortFuntion sortfution = bubble_sort,/ 冒泡排序selection_sort,/ 选择排序insertion_sort,/ 插入排序shell_sort,/ 希尔排序quick_sort,/ 快速排序merge_sort,/ 归并排序base_sort,/ 基数排序heap_sort/ 堆
4、排序; /main funtion int main() int sortS = 8,6,2,18,4,3,26,61,72,15; int sortD = 8,6,2,18,4,3,26,61,72,15; /* for(int i = 0; i sizeof(sortfution)/sizeof(SortFuntion); i+) cout=Begin=endl; Display(sortD,sizeof(sortD)/sizeof(int),false); sortfutioni(sortD,sizeof(sortD)/sizeof(int);名师资料总结 - - -精品资料欢迎下载 -
5、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - Display(sortD,sizeof(sortD)/sizeof(int),true); cout=End= end) return; if(nbegin n2*begin) r = 2*begin; if(2 * begin + 1 = end & nr 0; i-) maxheapify(n,i,end); / 堆排序接口void heap_sort(int n,int length) cout=Using Heap
6、 Sort= 1); memcpy(n,temp_n+1,length * sizeof(int); delete temp_n; / 基数排序接口void base_sort(int n,int length) cout=Using Merge Sort=endl;const int base = 10; /node class node public: int data; node *next; node()next = 0; *current = 0 ,*head = 0,*pre; /malloc node *box = new node *base; int i; for(i = 0
7、; i base; i+) boxi = new node; current = head = new node; /排序数据输入到当前链表中int max(0); for(i = 0;i next = new node; current - data = ni; if(max = ni) max = ni; / 找出最大的数 int k(0); while(max) max /= base; k+; / 计算最大数的位数int radix = 1; int order(0); node *p = 0; node *pnext = 0; for(i = 0; i next;/ 链表第一个节点名
8、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - / 拆链表while(current) order = (current - data / radix) % base; p = boxorder; while(p - next) p = p - next; p - next = current; current = current - next; p - next - next = 0; / 找到第一个节点int j (0); f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排序算法的C+代码实现 2022年数据结构排序算法的C+代码实现 2022 数据结构 排序 算法 C+ 代码 实现
限制150内