数据结构与算法
cd-qz
这个作者很懒,什么都没留下…
展开
-
快速排序(C语言实现)
快速排序(C语言实现)算法思想步骤基准的选取三数取中值选取基准(Median-of-Three Partitioning)随机选取数值作为基准值处理与基准相等的元素递归法迭代法算法思想见:6. 交换排序—快速排序(Quick Sort)步骤基准的选取选取第一个或最后一个元素作为基准都不好,因为如果元素事先已经排序好或以逆序排序,则基准不能达到分割的目的。三数取中值选取基准(Median...原创 2019-12-24 07:40:24 · 2038 阅读 · 0 评论 -
归并排序(C语言)
归并排序(C语言)算法思想递归法实现迭代法实现算法思想见:图解排序算法(四)之归并排序排序七 归并排序归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。递归法实现void MSort(int a[], int temarr[], int left, int right)...原创 2019-12-23 23:06:57 · 529 阅读 · 0 评论 -
堆排序(C语言实现)
堆排序(C语言实现)算法思想步骤程序算法思想见:4. 选择排序—堆排序(Heap Sort)算法导论------堆排序heapsort步骤1. 将n个元素建立初始堆,第一个节点放在数组下标1中,因此n个节点对应数组 a[1] ~ a[n],第 i 个节点的左孩子节点下标为 2i,右孩子节点为 2i + 1。找到最后一个非叶子节点:若节点 i 为最后一个非叶子节点,则(a) 节点i...原创 2019-12-23 21:50:15 · 1931 阅读 · 2 评论 -
选择排序(C语言)
选择排序(C语言)直接选择排序算法思想程序数组实现链表实现二元选择排序算法思想程序直接选择排序算法思想见:3. 选择排序—简单选择排序(Simple Selection Sort) 程序数组实现void swap(int *s1, int *s2){ int tem; tem = *s2; *s2 = *s1; *s1 = tem;}void SelectSort(int...原创 2019-12-23 17:58:49 · 1371 阅读 · 0 评论 -
希尔排序(C语言实现)
希尔排序(C语言实现)算法思想程序算法思想见:2. 插入排序—希尔排序(Shell`s Sort)程序//从大到小排序void ShellSort(int a[], int n){ int i, j, increment, tem; //序列分割成若干子序列 for (increment = n/2; increment > 0; increment /= 2) //子...原创 2019-12-23 16:03:38 · 336 阅读 · 0 评论 -
插入排序(c语言)
插入排序(c语言)1. 算法思想2. 程序数组实现单链表实现双链表实现1. 算法思想见:插入排序2. 程序数组实现//从大到小排序void InsertSort(int a[], int N){ int j, p, tem; for (p = 1; p < N; p++) { tem = a[p]; for (j = p; j > 0 && a...原创 2019-12-23 15:19:42 · 585 阅读 · 0 评论