分类目录归档:C++学习

c++语言学习,典型案例学习,c++入门教程,实例源码讲解,红颜丽人博客C++学日记,C++语言程序设计,数据结构基础算法应用,零基础学习c++等内容。

c++快速排序算法的实现代码



c++快排算法的实现代码实例。快速排序算法是非常重要而且是经常要使用的算法之一,该算法是Tony Hoare设计的,它涉及了递归函数的应用。c++的STL、Java SDK以及.net framework中都有各自的实现,可见它的应用非常广泛。

快排算法基本思想是:通过一趟排序将待排记录分割成[......]

Read more

c++如何找出数组中出现次数超过一半的数字



算法与数据结构练习题,c++如何找出数组中出现次数超过一半的数字。

算法题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入数组{ 1, 2, 3, 2, 2, 2, 5, 4, 2 },则输出数字2。

解法1:基于快排思想的O(n)算法

数组里面有一个数字[......]

Read more

输入n个整数找出其中最小的k个数c++算法练习题

题目:输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8,则最小的4个数字是1、2、3、4。

该题的解答思路是把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。只是这种思路的时间复杂度为O(nlogn),还有更快的解决思路。

问题解法一:基于Rando[......]

Read more

动态规划(dynamic programming)介绍

什么是动态规划(dynamic programming),其实它与分治法相同,都是通过组合子问题的解来解决整个问题。分治法是把问题划分成一些独立的子问题,递归的求解各个子问题,然后合并子问题的解而得到原问题的解。不同的是,动态规划适用于子问题不是独立的情况,而是各子问题包含公共的子子问题。这种情况下[......]

Read more

动态规划教程之装配线调度介绍(图示)

动态规划教程之装配线调度详细介绍(图示)。动态规划的题目练习与解答过程介绍。通过工厂最快路线的结构……

引入“动态规划”算法的例子。如下图,某公司有两条生产汽车的装配线。每一条装配线上有n个装配站,编号为j = 1,2,…,n。将装配线(i = 1,2)的第j个装配站表示为Si,j。装[......]

Read more

c++\pascal\java动态规划实例图示介绍以及什么是动态规划

c++\pascal\java动态规划实例,图示详细介绍什么是动态规划。如何快速理解动态规划的概念与原理呢?学习方法又是什么?动态规划算法解LCS问题介绍等。

什么是动态规划算法

动态规划一般也只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求[......]

Read more

c++算法练习题之计算连续子数组的最大和

c++算法练习题之计算连续子数组的最大和。以及动态规划的简单使用实例。

题目:输入一个整形数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组,求所有子数组的和的最大值。要求时间复杂度为O(n)

例如输入的数组{1, -2, 3, 10, -4, 7, 2, -5},和[......]

Read more

c++语言程序设计习题之用O(1)时间删除单向链表的结点

c++语言程序设计习题之用O(1)时间删除单向链表的结点。

本文摘自《剑指Offer》

题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。链表结点和函数的定义如下:

struct ListNode
{
int m_nValue;
ListNode[......]

Read more