关于冒泡排序的工作原理有几种,有的资料说是第k+x个位置与第k个位置比较(x>0的自然数),符合交换条件就交换。有的资料说是第k+1个位置与第k个位置比较。 我刚查资料总结了一下。我觉得既然是冒泡,那就应该所有元素每一趟排序就应该最多往上冒一层。不可能是从水底直接冒到水面。 所以正确的排序思想应该是 ...
分类:
编程语言 时间:
2016-11-30 17:24:43
阅读次数:
165
下面让我们一起来见识一下swift中基于Array的扩展的冒泡排序,选择排序和快速排序吧。 1.冒泡排序 冒泡排序再基础不过了,这里就不再讲其原理了,实在不会可以看下百度百科冒泡排序 既然冒泡排序避免不了数组中两个数据交换,先写一个交换函数 // 交换数组中i和j两个位置的数据 extension ...
分类:
编程语言 时间:
2016-11-27 12:01:09
阅读次数:
234
总结下自己对插入排序的理解。
插入排序算法思想:每趟将一个元素,按照其关键字的大小插入到它前面已经排序的子序列中,依此重复,直到插入全部元素。
插入排序包括:直接插入排序、二分插入排序以及希尔排序...
分类:
编程语言 时间:
2016-11-21 02:10:55
阅读次数:
211
最近两个月多次面试的过程中发现自己对算法的相关知识涉猎甚少,也逐渐的开始了解到算法的重要性。现在逐步对一些常用算法进行整理和归类,与大家分享的同时也能慢慢的减少自己的盲区。 1.快速排序: 快速排序的基本思想是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据 ...
分类:
编程语言 时间:
2016-11-15 16:38:09
阅读次数:
185
八大排序算法的稳定性及复杂度总结如下: 选择排序算法准则 每种排序算法都各有优缺点。因此,在实用时需根据不同情况适当选用,甚至可以将多种方法结合起来使用。 影响排序的因素有很多,平均时间复杂度低的算法并不一定就是最优的。相反,有时平均时间复杂度高的算法可能更适合某些特殊情况。同时,选择算法时还得考虑 ...
分类:
编程语言 时间:
2016-11-09 12:44:46
阅读次数:
153
数据结构和算法对一个程序来说是至关重要的,现在介绍一下几种算法,在项目中较为常用的算法有:冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等7中算法。现在介绍选择排序算法,希尔排序算法,快速排序算法。(1).选择排序算法:通过n-i次关键..
分类:
编程语言 时间:
2016-10-25 20:18:03
阅读次数:
271
需要复习的算法题分类 9. 各种排序 1. 基于非比较排序 ? 2. 基于比较排序 10. 算法总结 ...
分类:
其他好文 时间:
2016-10-21 08:04:59
阅读次数:
134
一.冒泡排序 说起冒泡排序,可能每个人都不会陌生,实现思路相当简单明了,就是不停的对数组进行两两比较,将较大(较小)的一项放在前面; 如 var arr = [7, 3, 10, 1, 8, 4, 2, 4, 4, 3] 进行升序排列,排序过程如下 第一次 [3, 7, 1, 8, 4, 2, 4, ...
分类:
编程语言 时间:
2016-10-14 09:38:39
阅读次数:
180
相信排序是任何一个程序猿都会用到的东西,今天简单总结记录下常见的排序算法。 一.冒泡排序 说起冒泡排序,可能每个人都不会陌生,实现思路相当简单明了,就是不停的对数组进行两两比较,将较大(较小)的一项放在前面; 如 var arr = [7, 3, 10, 1, 8, 4, 2, 4, 4, 3] 进 ...
分类:
编程语言 时间:
2016-10-14 07:25:50
阅读次数:
177
各种排序算法总结 空间复杂度: In-place sort(不占用额外内存或占用常数的内存):插入排序、选择排序、冒泡排序、堆排序、快速排序。 Out-place sort:归并排序、计数排序、基数排序、桶排序。 稳定性: stable sort:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶 ...
分类:
编程语言 时间:
2016-10-05 22:18:34
阅读次数:
467