数据结构和算法笔记
文章平均质量分 76
ahuang1900
记录计算机应用的点点滴滴
展开
-
算法入门(0)
考虑到以后工作面试要考算法,打算写一个算法系列,一是为了学习,二是为了通过csdn这个平台和大家分享,同时也督促自己!《算法导论》我看不懂,那就找本中国人写的吧,看到同学那里有本王晓东的《计算机算法设计与分析》,我顺便就拿来看了。打算就使用这本书写个序列吧!目录第1章 算法概述第2章 递归与分治策略第3章 动态规划第4章 贪心算法第5章 回溯法第6章 分支限界法第7原创 2014-01-20 18:54:56 · 647 阅读 · 0 评论 -
算法基础-直接插入排序
一、直接插入排序直接插入排序,下面使用了3中方法实现了。二、算法实现// 直接插入排序.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;void InsertSort1(int a[],int n);void InsertSort2(int a[],int n);void原创 2014-02-27 03:31:21 · 748 阅读 · 0 评论 -
算法基础-希尔排序
一、希尔排序希尔排序,也称也称递减增量排序算法,它是直接插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。【来自维基百科】 下面直接以一个例子来说明吧!例如,一个数组A={49, 38, 65, 97, 26, 13, 27, 49, 55, 4}为例,个数n=10。第一次 步长gap= n/2= 10/2 = 5这样原来的数组可以被划分为{49,13},{38,27}原创 2014-03-01 00:07:47 · 678 阅读 · 0 评论 -
算法基础—选择排序
一、选择排序选择排序时一种很简单的排序算法。它的算法思想如下:【来自维基百科】1. 首先从待排序的序列中找到最小的元素(从小到大排序),放到排序序列的起始位置;2. 然后从剩余的待排序的序列中继续选出最小的元素,将其放入已排序的序列的尾部(头部在左,尾部在右);3.以此类推,直到所有元素排序完毕。事实上,选择排序和插入排序的思想有些类似的。因为它们都将数据分为有序区和无序区,它原创 2014-03-03 00:02:05 · 662 阅读 · 0 评论 -
算法基础-冒泡排序
一、冒泡排序冒泡排序有向上冒泡和向下冒泡,这里以向下冒泡为例说明。向下冒泡的思路,基本上就是比较相邻的两个数据,如果前一个数据比后一个数据大,那么就交换数据。依次这样进行。下面我们使用了2中方法实现。一种是直接按冒泡的思路直接写的,后一种设置了一个标记,其实相当于对冒泡排序进行了小小的优化。二、代码实现// 冒泡排序.cpp : 定义控制台应用程序的入口点。//#incl原创 2014-02-27 02:46:57 · 848 阅读 · 0 评论 -
算法基础-归并排序
一、归并排序归并排序是建立在归并操作的基础上的一种有效的排序算法,该算法采用了分治法(Divde and conquer)。【维基百科】在归并排序前,需要介绍一下归并操作的思想:它就是将两个已经排好序的序列合并成一个有序的操作,归并操作的步骤如下:1.申请空间,它的大小是两个已排好序列的长度和,将该空间作为存放合并后的序列。2.设定两个指针,一开始的时候两个指针分别指向两个已排好序原创 2014-03-06 00:22:51 · 638 阅读 · 0 评论