上一篇介绍了冒泡算法及其优化方案,但其优化是从每轮的比较次数上优化,而“鸡尾酒算法”可以从轮次上优化。 一、什么时鸡尾酒排序? 鸡尾酒排序又称为快乐小时排序,它基于冒泡排序进行的优化方案。 二、鸡尾酒算法思想 冒泡排序是元素单向比较,而鸡尾酒排序却是双向。 列举一个最简单的栗子array[2, 3, ...
分类:
编程语言 时间:
2018-08-01 20:43:38
阅读次数:
201
一、冒泡排序 冒泡算法的运作规律如下: ①、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 ②、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数(也就是第一波冒泡完成)。 ③、针对所有的元素重复以上的步骤,除了最后一个。 ④、持续每次对越来越少的 ...
分类:
编程语言 时间:
2018-07-30 18:00:44
阅读次数:
145
注: 时间复杂度: 完成一个程序所需要的时间; 空间复杂度: 完成一个程序所需要的内存大小; 1.冒泡排序: 两两比较,如果前一个比后一个大,则互换位置,每次循环比较后,最后一个永远是最大的,下一轮比较,它就不参与了。 eg: function sort(array){ for(var i = 0; ...
分类:
编程语言 时间:
2018-07-08 15:37:02
阅读次数:
139
1 package cn.stringbuffer.com; 2 3 public class StringBufferDemo3 { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub ... ...
分类:
编程语言 时间:
2018-07-06 13:11:39
阅读次数:
141
因为过一阵要面试 大厂都比较注重算法题 所以今天练习一个简单的冒泡算法 冒泡算法的基本原理为: 1.比较相邻的两个数 如果第一个数比第二个数大 那么就交换位置 2.那么每次比较一轮之后 最大的数将会到最右侧 3.所以综上方法对于长度为n的数组需要比较n-1次之后才能使数组排序完毕(为什么是n-1 因 ...
分类:
编程语言 时间:
2018-07-03 00:18:27
阅读次数:
177
(端午放假今天终于回来了,打起鸡血继续) 之前学c的时候学过一种简单的冒泡算法,比较好理解,今天在书上看到了另一种,有些复杂,看了好一会在弄明白。 以数组num[]={8,3,5,4,2,6}为例; 先说以前学的那种方法: 今天在遇见的一种方法: 有点不好理解,是将i前面的从小到大一次排列,直到i= ...
分类:
编程语言 时间:
2018-06-19 14:44:08
阅读次数:
139
之前和一个小伙伴谈起了排序算法,所以我抽时间整理了大家平时常见的一些排序算法。 1、冒泡算法: 冒泡排序动图演示 2、选择排序: 选择排序动图演示 3、插入排序: 插入排序动图演示 4、快速排序: 快速排序动图演示 5、希尔排序: ...
分类:
编程语言 时间:
2018-06-17 22:24:51
阅读次数:
189
http://www.verejava.com/?id=16992682424030 / 用冒泡算法:将成绩arrays 从小到大排序输出 思路: 第一趟排序 1. 将数组中n个元素从第一个元素开始 一一跟后面的元素比较 2. 如果前面的数据比后面的数据大, 两个交换位置直到一次循环完成,那么数组中 ...
分类:
编程语言 时间:
2018-06-17 11:06:15
阅读次数:
158
1.冒泡算法:N个数从左到右,相邻两两比较,按照顺序排列。#冒泡排序,升序a=[4,5,1,6,3,7,1,10]foriinrange(len(a)):forjinrange(i+1,len(a)):ifa[i]>a[j]:a[i],a[j]=a[j],a[i]print(a)[1,1,3,4,5,6,7,10]#冒泡排序,降序a=[4,5,1,6,3,7,1,10]foriinrange
分类:
编程语言 时间:
2018-05-11 13:00:07
阅读次数:
226
<?php$arr = array(5,21,5,7,8,3,435,745,234,23,45,67,8767,789,98,8,9);echo 'before: ';var_dump($arr);echo 'after: ';var_dump(maopao($arr));function mao ...
分类:
编程语言 时间:
2018-05-03 12:07:09
阅读次数:
185