随笔分类 - 排序算法
排序算法----快速排序(链表形式)
摘要:单链表形式实现排序算法。 这个快速排序主要利用递归调用。包含4个文件,头文件QuickSort.h,fatal.h,库函数QuickSort.c,测试文件TestQuickSort。 QuickSort.h fatal.h 库函数QuickSort.c 测试文件TestQuickSort:
阅读全文
排序算法----调用库函数qsort进行快速排序
摘要:功 能: 快速排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *)); 参数: 1 待排序数组首元素的地址 2 数组中待排序元素数量 3 各元素的占用
阅读全文
排序算法----快速排序(数组形式)
摘要:这个快速排序主要利用递归调用,数组存储方式。包含3个文件,头文件QuickSort.h,库函数QuickSort.c,测试文件TestQuickSort。 其中Cutoff可以自己给定,这个当开始给定的数组(或者递归调用产生的子数组)的元素个数<=20个时,采用插入排序。一般认为当元素个数<=20时
阅读全文
排序算法选择准则
摘要:(必看)选择哪种排序算法,先参考这个网站查看排序速度演示https://www.toptal.com/developers/sorting-algorithms/ 各种排序详解可以参考http://sjjp.tjuci.edu.cn/sjjg/datastructure/ds/web/paixu/p
阅读全文
排序算法----基数排序(RadixSort(L,max))单链表版本
摘要:转载http://blog.csdn.net/Shayabean_/article/details/44885917博客 先说说基数排序的思想: 基数排序是非比较型的排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数
阅读全文
排序算法----基数排序(RadixSort(L))单链表智能版本
摘要:转载http://blog.csdn.net/Shayabean_/article/details/44885917博客 先说说基数排序的思想: 基数排序是非比较型的排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数
阅读全文
排序算法----桶排序(数组)
摘要:桶排序是一种效率很高的排序算法,它的时间复杂度为O(N+M),(N个元素,范围为0--M),但桶排序有一定的限制,必须为非负整数,而且元素不宜过大。 算法思想: 设待排序序列的元素取值范围为0到m,则我们新建一个大小为m+1的临时数组并把初始值都设为0,遍历待排序序列,把待排序序列中元素的值作为临时
阅读全文
排序算法----数组存储插入排序
摘要:1 void 2 InsertionSort(ElementType A[], int N) 3 { 4 int j, P; 5 ElementType Tmp; 6 for (P = 1; P 0 && A[j - 1] > Tmp; j--) 10 A[j] = A[j - 1]; 11 ...
阅读全文
排序算法----无表头链表插入排序
摘要:/* //对于很小的数源(N<=20),插入排序比快速排序好,此时,插入排序速度快也稳定。 //插入排序只用在小的或是非常接近排好序的输入数据上。 功能:直接插入排序(由小到大) 返回:指向链表表 头的指针 */ /* 直接插入排序的基本思想就是假设链表的前面n-1个节点是已经按键值 (就是用它排序
阅读全文
排序算法----有表头链表插入排序
摘要://对于很小的数源(NNext == NULL) 18 printf("Empty List!");//判断是不是空链表 19 else 20 { 21 first = head->Next->Next; /*原链表剩下用于直接插入排序的节点链表:可根据图12来理解。*/ 22 head->Next->Next = NULL;...
阅读全文
浙公网安备 33010602011771号