askunix

askunix@163.com

堆排序

描述: 堆排序就是利用堆这种数据结构进行排序的算法,堆排序属于选择排序。 堆是一棵顺序存储的完全二叉树 堆排序的时间复杂度: O(nlogn),属于不稳定排序。 大根堆 小根堆 每个节点的值大于等于孩子节点得堆 每个节点得值小于等于孩子节点得值 ...

2018-06-27 00:49:03

阅读数 6748

评论数 1

二叉树的层序遍历(两种方法实现)

两种方法实现二叉树的层序遍历 1、说明 二叉树的层序遍历是面试经常会被考察的知识点,甚至要求当场写出实现过程。 层序遍历所要解决的问题很好理解,就是按二叉树从上到下,从左到右依次打印每个节点中存储的数据。如下图: 先序遍历:A → B → D → C 中序遍历:B → ...

2018-06-24 23:51:59

阅读数 8943

评论数 0

分析malloc\free、new\delete的用法和区别

写在前面 每个程序在执行时都会占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为自由存储区或堆。 malloc和free用法 首先明白malloc是动态内存开辟函数,malloc和free是成对出现的,malloc和free在头文件stdlib.h函数中声明,mal...

2018-06-22 11:48:51

阅读数 948

评论数 0

【面试题】求连续子数组的最大和(三种解法)

题目描述 给定一个数组 array[1, 4, -5, 9, 8, 3, -6],在这个数字中有多个子数组,子数组和最大的应该是:[9, 8, 3],输出20,再比如数组为[1, -2, 3, 10, -4, 7, 2, -5],和最大的子数组为[3, 10, -4, 7, 2],输出18...

2018-06-26 16:05:03

阅读数 6340

评论数 8

【面试题】链表K翻转

题目描述: 给定链表: 1 -> 2 -> 3 ->4 -> 5 -> 6 -> 7 -&g...

2018-06-22 21:02:54

阅读数 935

评论数 0

【面试题】数组中出现次数超过数组长度一半的数字

描述: 在一个一维数组中存放了size个元素,其中某个元素重复出现的次数超过数组长度的一般,也就是出现了 size/n 次,请返回这个数。 思路一:排序法 对元素排序,如果此数字出现次数大于整体长度一半,则中间的数字一定是这个数字。(前提是一定有数字出现次数大于长度一半,否则会...

2018-06-22 18:35:46

阅读数 957

评论数 0

C语言实现通讯录(增删查改、排序、清空、打印等功能)

写在前面: C语言通讯录可以用来存储1000个人的信息, 每个人的信息包括姓名、年龄、性别、电话、住址, 实现基本的增、删、查、改、排序、打印、清空基本功能。 思路分析: 首先我们可以分三个模块来解决这个问题,第一个模块我们需要一个头文件,这个头文件里可以包含一些相应信息,当...

2018-06-17 23:04:24

阅读数 3413

评论数 0

【面试题】反转链表的递归和非递归实现

题目描述: 定义一个函数,输入链表的头结点,反转该链表并输出反转后链表的头结点。 链表定义如下: struct Node { DataType List; struct List* _pNext; }; typedef struct List Node; typed...

2018-06-12 17:10:22

阅读数 920

评论数 0

【面试题】返回链表倒数第K个节点

题目描述: 输入一个链表,返回链表倒数第K个节点。 实现过程: #include<stdio.h> #include<stdlib.h> #include<assert.h&am...

2018-06-06 22:48:29

阅读数 966

评论数 0

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