
数据结构与算法
爬行者小Y
梦想路上的爬行者
http://developeryang.top/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序算法
排序算法要素:时间性能 辅助空间 算法的复杂性 稳定性 1. 插入排序:插入排序基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。2. 希尔排序:希尔排序(Shel原创 2017-05-18 15:28:06 · 204 阅读 · 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 · 301 阅读 · 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 · 448 阅读 · 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 · 2267 阅读 · 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 · 524 阅读 · 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 · 353 阅读 · 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 · 878 阅读 · 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 · 295 阅读 · 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 · 2399 阅读 · 0 评论