![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
一倾而尽
坚信成功的愿景
展开
-
高等排序之归并排序
为什么会有如此多的排序方法呢,我们常使用的有冒泡、选择、快速排序,希尔排序等等。这是因为每一种排序方法有其特定的使用范围,尤其是对时间和空间复杂度要求高的算法中,很显然像冒泡这类的高复杂度的算法就无法胜任。对付此类问题则需要使用到高等排序方法。而归并排序就是其中之一。归并排序理解其实也非常简单,就是将数组分割为包含n/2个元素局部数组,对每个数组继续执行归并排序。并通过Merge(合并)将两个已...原创 2019-04-06 21:33:19 · 128 阅读 · 0 评论 -
高等排序之分割法(partition)
首先先给出Partition函数的伪代码: partition(A,p,r) //r是数组A末尾元素的下标, x=A[r] //分割时以A[r]为基准进行分割 i=p-1 for j = p to r-1 if A[j] <= x i=i+1 交换A[i]与A[j] ...原创 2019-04-08 15:58:30 · 987 阅读 · 0 评论 -
BF算法和KMP算法详解
串匹配问题给定两个字符串S和T,在主串S中查找子串T的过程称之为串匹配(模式匹配),T称之为模式。这样一类的问题在实践中应用非常广泛。在文本处理系统、操作系统、编译系统、数据库系统以及Internet信息检索系统中,串匹配都是使用最频繁的操作。一般来说,串匹配问题具有以下的特征:问题输入规模很大,常常要在大量信息中进行匹配。因此,算法执行依次的时间也不可忽视匹配操作经常被调用,执行频率很...原创 2019-04-09 17:24:32 · 4999 阅读 · 0 评论 -
Java实现菱形打印
打印空心菱形效果如图: // n为上半个菱形的层数 for (int i = 1; i <= n; i++) { for (int j = 1; j <= (n - i); j++) System.out.print(" "); // 打印*的个数 if (i == 1) System.out.print("*"); else { ...原创 2019-05-09 22:48:42 · 2530 阅读 · 3 评论 -
Java递归和非递归二分查找
非递归实现二分查找/** * 非递归查找key * @param array * @param key * @return */ public static int binarySearch(int[] array, int key) { bubbleSort(array); int left = 0; int right = array.length - 1;...原创 2019-05-10 17:07:17 · 356 阅读 · 0 评论 -
初等排序之插入排序(Java)
1. 直接插入排序 /** * 初始序列:5 4 3 2 9 8 * 第一趟:[4 5] 3 2 9 8 * 第二趟:[3 4 5] 2 9 8 * 第三趟:[2 3 4 5] 9 8 * 第四趟:[2 3 4 5 9] 8 * 第五趟:[2 3 4 5 8 9] * * @param array */ public static void ...原创 2019-05-11 10:37:16 · 139 阅读 · 0 评论 -
王道数据结构线性表基本操作实现
#include<iostream>using namespace std;//#define MaxSize 50 //线性表最大长度#define InitSize 100 //表长度初始定义typedef int ElemType;//typedef struct {// ElemType data[MaxSize]; ...原创 2019-06-16 17:20:05 · 1148 阅读 · 0 评论 -
数据结构之单链表基本操作(C++)
#include<iostream>using namespace std;typedef int elemType;template <typename elemType>class linkList {private: struct Node //结点类型 { elemType data; //结点数据...原创 2019-06-21 15:45:02 · 3633 阅读 · 1 评论 -
王道数据结构栈实现
#include<cstdio>#define MaxSize 50typedef int ElemType;typedef struct { ElemType data[MaxSize]; //栈中存放元素 int top; //栈顶指针,初始赋为-1}SqStack; ///*栈初始化*/void InitSta...原创 2019-06-22 16:16:12 · 346 阅读 · 0 评论