
数据结构与算法
大姑娘花花花花
正在努力学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构时间复杂度
在看很多关于数据结构与算法的书时,出现很多次“时间复杂度”这个字眼,一直处于半懂不懂的状态,今天终于搞明白啦。 时间复杂度,说白一点就是算法的效率。那判断算法的效率高低,一般用大O阶的方法。T(n)=O(f(n))。 推导大O阶: 1.用常数1取代运行时间中的所有加法常数。 2.在修改后的运行次数函数中,只保留最高阶项。 3.如果最高阶项存在且不是1,则去除与这个项相乘的常数。得到的结果就原创 2016-08-05 10:53:24 · 579 阅读 · 0 评论 -
冒泡排序
import java.util.Scanner;public class Bubble { public static void main(String []args){ int n; Scanner s=new Scanner(System.in); n=s.nextInt(); int[] a=new int[n];原创 2016-08-05 14:40:49 · 338 阅读 · 0 评论 -
快速排序
几经周折,虽然还是有点bug,但是理解快速排序的内容啦。 快速排序,首先就是要先找到一个中间的标准(主元),然后把主元放在序列的最后,分别从前到后和从后到前将其他数字与主元进行比较,以达到分段的目的。import java.util.Scanner; public class Quick { //交换两个整数 private static void swap(int a,int b原创 2016-08-08 09:18:01 · 338 阅读 · 0 评论 -
选择排序
逆序排列:每次从序列中选择最大的元素放在第i个位置(已排好序的元素的后面)。import java.util.Scanner; public class SelectSort { public static void main(String[] args){ int n; Scanner s=new Scanner(System.in); n=原创 2016-08-08 09:55:30 · 244 阅读 · 0 评论 -
插入排序
插入排序的重点是在选择插入位置的时候,要把插入位置后面的元素向后移动。package AboutPaixu;import java.util.Scanner;public class InsertSort { public static void main(String []args){ int n; Scanner s=new Scanner(System.原创 2016-08-08 10:24:09 · 291 阅读 · 0 评论 -
希尔排序
希尔排序是插入排序的一种。通过设置固定的间隔,将数组进行分组,然后在组内进行插入排序,将间隔逐渐缩小,进行重新分组,重新插入排序。import java.util.Scanner; public class ShellSort { public static void main(String []args){ int n; Scanner s=new Scan原创 2016-08-08 14:54:22 · 304 阅读 · 0 评论 -
归并排序
归并排序首先第一点就是分而治之。 第二点就是比较已分段的两组序列的元素的大小,依次放入临时数组中。 第三点就是可采用递归的方法。import java.util.Scanner;public class MergeSort { private static void merge(int[] a,int[] temp,int L,int R,int rightend){ i原创 2016-08-11 10:04:23 · 255 阅读 · 0 评论 -
算法的稳定性
之前只考虑了算法的时间复杂度。然后又想了一下关于算法稳定性的问题。 我学习稳定性的博客。 http://blog.youkuaiyun.com/johnny710vip/article/details/6895654 感谢。 稳定性是针对数组中两个相等值的元素而言的。若两个相等元素排序前后相对位置没有改变,则说这个排序算法是稳定的。 常见算法的稳定性总结: ①插入排序:稳定。 ②冒泡排序:稳定。(原创 2016-08-11 10:23:26 · 463 阅读 · 0 评论