![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
爬行者小Y
梦想路上的爬行者
http://developeryang.top/
展开
-
排序算法
排序算法要素:时间性能 辅助空间 算法的复杂性 稳定性 1. 插入排序:插入排序基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。2. 希尔排序:希尔排序(Shel原创 2017-05-18 15:28:06 · 174 阅读 · 0 评论 -
HeapSort(堆排序)
//平均时间复杂度O(nlog2(n))//空间复杂度O(1)//最优时间复杂度O(nlog2(n))//最坏时间复杂度O(nlog2(n))#include <stdio.h>void swap(int *a, int *b){ int temp = *a; *a = *b; *b = temp;}void MaxHeap(int a[], int start,原创 2017-06-14 21:15:16 · 258 阅读 · 0 评论 -
SimpleSelectSort(简单选择排序)
//平均时间复杂度O(n^2)//空间复杂度O(1)//最优时间复杂度O(n^2)//最坏时间复杂度O(n^2)//不稳定#include <stdio.h>void swap(int *a, int *b){ int temp = *a; *a = *b; *b = temp;}void SimpleSelectSort(int a[], int n){原创 2017-05-22 21:26:37 · 414 阅读 · 0 评论 -
QuickSort(快速排序)
快速排序是分区交换,属于交换排序,是冒泡排序的改进。 当待排序的关键字是随机分布时,快速排序的平均时间最短。//平均时间复杂度O(n^2)//空间复杂度O(logn)~O(n)//最优时间复杂度O(nlogn)//最坏时间复杂度O(n^2)#include <stdio.h>void swap(int *a, int *b){ int temp = *a; *a = *b;原创 2017-05-18 22:02:22 · 2217 阅读 · 0 评论 -
BubbleSort(冒泡排序)
一般情况下不要用冒泡排序, 除非 n <= 16//使用flag来避免因原数组已经有序而进行无意义的判断//平均时间复杂度O(n^2)//空间复杂度O(1)//稳定#include <stdio.h>#include <stdbool.h>void swap(int *a, int *b){ int temp; temp = *a; *a = *b; *b原创 2017-05-18 15:06:37 · 480 阅读 · 0 评论 -
ShellSort(希尔排序)
//平均时间复杂度O(n^1.3)//空间复杂度O(1)//最优时间复杂度O(n)//最坏时间复杂度O(n^2)#include <stdio.h>void shellSort(int a[], int len){ int gap, i, j; int temp; for (gap = len / 2; gap > 0; gap /= 2) { for原创 2017-06-13 22:15:07 · 312 阅读 · 0 评论 -
InsertSort(插入排序)
简单插入排序//平均时间复杂度O(n^2)//最优时间复杂度O(n)//最坏时间复杂度O(n^2)//空间复杂度O(1)//稳定#include <stdio.h>void InsertSort(int a[], int len){ int i, j; int temp; for (i = 1; i < len; i++) { temp = a[i]原创 2017-06-14 21:25:21 · 829 阅读 · 0 评论 -
剑指offer-(1-5)
title: 剑指offer-(1-5) date: 2017-09-01 22:40:06 categories: technology tags: - 算法 - 剑指offer1.二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。考点:原创 2017-10-01 16:09:58 · 262 阅读 · 0 评论 -
前缀,中缀,后缀表达式转换
title: 前缀,中缀,后缀表达式转换 date: 2017-09-10 19:45:09 categories: ‘technology’ tags: - ‘算法’1 基本概念 在计算机中表达式有三种,前缀表达式(波兰式),中缀表达式,后缀表达式(逆波兰式)。如表达式:a+b*(c-d)-e/f前缀表达式:-+a*b-cd/ef中缀表达式:a+b*(c-d)-e/f原创 2017-10-01 16:13:43 · 2224 阅读 · 0 评论