美文网首页
数据结构之排序总结

数据结构之排序总结

作者: 洛珎 | 来源:发表于2019-11-04 18:27 被阅读0次

1.冒泡排序

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

eg:数组[1,5,2,3,4],升序排序

思路:两层遍历,比较相邻两个元素比较大小,使大的(或小的)数往数组头部排。

首先从数字最后一个数开始,比较相邻两个数的大小,如果前面的数比它小,交换位置,这样遍历一轮下来就把最大的书排在了index=0的位置,即5;接下来继续上面的做法,就把第二大的数排在了index=1的位置;依次下去直到完成数组的排序;

时间复杂度:为n方;最快是数组正序的时候;最慢是数组倒序的时候,比如升序对应的降序

2.选择排序

3.插入排序

4.归并排序

eg:数组[7,2,4,6]升序

思路:先将数组平均分成两份数组,再继续平分,直到每个数组的长度为1;

再有序地合并,比如arr1=[2,7],arr2=[4,6],先拿arr1的首元素2与arr2的首元素相比较,2<4,小的取出来加入返回的新数组temp,即2,并且小的数组向后移动一个位置,拿7和4比较,7>4,取出4加入temp,即[2,4],重复直到完成排序

5.快速排序

eg:[2,3,4,1,5,6]升序

思路:首先取基准数,这里取数组第一个数,右指针从右向左扫描,碰到第一个小于基准数的时候停住,左指针从左向右扫描,碰到第一个大于基准数的时候停住;

交换左右指针所停位置的数,最后交换基准数与指针相遇位置的数;

递归

相关文章

  • 20181121_ARTS_W7

    Algorithm 这周看了下数据结构与算法之美专栏的排序部分,归纳总结了几类基本排序的区别,并实现了相关的代码。...

  • 数据结构之排序总结

    1.冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到...

  • 冒泡排序算法(C语言)

    排序(冒泡排序算法) 本专题将总结数据结构中几种常见的基本排序方法(后续的几种排序方法将会在整理后发布),意图将计...

  • 实现 Trie

    数据结构之Trie树Trie树:应用于统计和排序

  • Swift的十大经典排序算法总结

    Swift的十大经典排序算法总结 排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排...

  • 算法

    十大经典排序算法(动图演示) 【数据结构】链表的原理及与其相关的常见面试题总结 一、排序算法 交换排序冒泡排序快速...

  • 链表问题补充

    本篇文章是上篇文章的一个补充数据结构之表的总结 合并两个排序的链表 题目:输入两个递增排序的链表,合并这两个链表并...

  • 数据结构和算法总结

    数据结构和算法总结 一、排序算法 1.1、排序分类 1.内部排序 指将需要处理的所有数据都加载到内部存储器(内存)...

  • 堆排序

    转载:图解排序算法(三)之堆排序 预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选...

  • 【数据结构】【C#】023-内部排序:👨‍🏫算法总结

    【C#】【数据结构】排序算法总结 动态可视化排序算法网站——SORTING 时间复杂度: (1)平方阶(O(n2)...

网友评论

      本文标题:数据结构之排序总结

      本文链接:https://www.haomeiwen.com/subject/kdnqbctx.html