自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ALWAYS LEARNING

学习记录

  • 博客(13)
  • 收藏
  • 关注

原创 快速排序(C语言实现)

快速排序(C语言实现)算法思想步骤基准的选取三数取中值选取基准(Median-of-Three Partitioning)随机选取数值作为基准值处理与基准相等的元素递归法迭代法算法思想见:6. 交换排序—快速排序(Quick Sort)步骤基准的选取选取第一个或最后一个元素作为基准都不好,因为如果元素事先已经排序好或以逆序排序,则基准不能达到分割的目的。三数取中值选取基准(Median...

2019-12-24 07:40:24 2037

原创 归并排序(C语言)

归并排序(C语言)算法思想递归法实现迭代法实现算法思想见:图解排序算法(四)之归并排序排序七 归并排序归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。递归法实现void MSort(int a[], int temarr[], int left, int right)...

2019-12-23 23:06:57 528

原创 堆排序(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 1929 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 1370

原创 希尔排序(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 335

原创 插入排序(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 582

原创 约瑟夫环问题(c语言实现)

约瑟夫环问题问题描述算法1. 非递归法算法理解程序2. 递归法程序3. 循环双链表思路程序问题描述有N个人,编号为 1~n,围成一个圈,编号1的人手上有一个热狗开始向下一个人传递,在热狗传递 m 次后,此时拿着热狗的人退出,剩余的人围成一个圈,从退出的人的下一位再开始上述循环,知道最后一个留下来的人胜利。如果n为5,m为1,则退出的人编号依次为2,4,1,5,最后胜利的是3。算法1. 非...

2019-12-21 22:57:23 11398 7

原创 链表头节点作用

链表头节点作用定义程序示例节点前插入节点有头节点在首节点前插入无头节点在首节点前插入删除节点有头节点删除首节点无头节点删除首节点参考:单链表头节点,头指针深刻理解:带头结点和不带头结点的区别 使用头结点的优势定义头指针:链表第一个节点的存储位置首节点:第一个存储数据的节点头节点: 首节点前面,存放首节点地址头节点不是链表必须的 ,但有头节点能让链表对首节点的操作,如首节点前插入节点...

2019-12-20 17:35:47 1935 2

原创 逆置单链表c语言实现

逆置单链表c语言实现算法程序算法采用非递归(迭代)的方法,不需要额外的空间。算法图解参见:数据结构学习-带头结点的单链表就地逆置单链表的逆置(头插法和就地逆置)算法用到三个指针,PreviousPos, CurrentPos, NextPos,在开头到 PreviousPos的节点已经排序好,从 CurrentPos 到尾节点之间未排序好。链表带有头节点,但头节点先分离出来,最后排序...

2019-12-20 16:43:19 1950

原创 数据结构与算法分析 C 语言描述第二版第三章——链表(linked list)

数据结构与算法分析 C 语言描述第二版第三章——链表(linked list)1. General idea2. Doubly linked lists3. Circularly linked lists4. Examples4.1 The Polynomial ADT1. General ideaThe linked list consists a series of structures,...

2019-12-20 11:43:36 417

原创 数据结构与算法分析 C 语言描述第二版第三章——链表实现基数排序

数据结构与算法分析 C 语言描述第二版第三章——链表实现基数排序基数排序(radix sort)算法基数排序(radix sort)算法算法思想见:基数排序

2019-12-20 11:39:28 317

原创 数据结构与算法分析 C 语言描述第二版第三章——链表实现多项式相乘

数据结构与算法分析 C 语言描述第二版第三章——链表实现多项式相乘

2019-12-19 16:50:28 540

原创 数据结构与算法分析 C 语言描述第二版第三章——链表实现多项式相加

数据结构与算法分析 C 语言描述第二版第三章——链表实现多项式相加1. 思路2. 程序单链表双链表要求:多项式指数按照从大到小顺序排列,计算求和多项式后不会破坏原有输入的两个多项式1. 思路1)让用户输入多项式的系数和指数,将最终多项式按指数降序排序,由于输入时可能不是按照顺序,因此需要排序,这里有两种方法:a. 用单链表,先不排序,所有数据直接插入尾部,最后进行排序。b. 用双链表,...

2019-12-18 21:00:32 446

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除