经典排序算法 - 鸡尾酒排序Cocktail sort
鸡尾酒排序基于冒泡排序,双向循环
还是看例子吧,给定待排数组[2 3 4 5 1]
第一趟过去时的每一步
第一步迭代,2
[2 3 4 5 1]
第二步迭代,3
[2 3 4 5 1]
第三步迭代,4
[2 3 4 5 1]
第四步迭代,5 > 1交换
[2 3 4 1 5]
第一趟回来时...
分类:
编程语言 时间:
2014-12-16 13:34:46
阅读次数:
205
经典排序算法 - 梳排序Comb sort
梳排序还是基于冒泡排序,与冒泡不同的是,梳排序比较的是固定距离处的数的比较和交换,类似希尔那样
这个固定距离是待排数组长度除以1.3得到近似值,下次则以上次得到的近似值再除以1.3,直到距离小至3时,以1递减
不太好描述,还是看例子吧
假设待数组[8 4 3 7 6 5 2 1]
待排数组长度为8,而8÷1.3=6,则比较8和2,4和1,并做交...
分类:
编程语言 时间:
2014-12-16 13:33:42
阅读次数:
236
/* date:2014.12.14
快速排序思路:和冒泡排序相似,基于比较和交换来实现排序,改进后效率高了。
流程:1).首先设置一个分界值,通过该值将数组分成左右两部分,左边序列小于等于它,右边序列大于等于它;
2).对于左边和右边的序列,分别执行(1)操作;
3).重复(2),相当于递归,直到有序。
时间复杂度:最差O(n^2),平均O(nlogn)...
分类:
编程语言 时间:
2014-12-15 21:50:30
阅读次数:
233
PHP冒泡排序,新菜鸟一枚冒泡原理【1】,【2】,【3】,【4】,【5】,【6】排序原理解析,(从小到大)第一重循环,1和2比较,如果【1】>【2】,大的数在后面,交换【1】和【2】的值,如果【1】$array[$j+1]) { $var=$array[$j]; $array[$j]=$...
分类:
编程语言 时间:
2014-12-15 21:46:53
阅读次数:
228
数组:定义一组同类型的指定个数的变量索引从0开始int[] name=new int[n];------------------------------------------------------自动遍历数组:foreach (int a in shu){ console.writeline(a...
分类:
编程语言 时间:
2014-12-15 21:30:11
阅读次数:
221
foreach: foreach (int h in a) //可以将数组读出来(自动遍历数组) { Console.WriteLine(h); }等量代换:用一种量(或一种量的一部分)来代替和它相等的另一种量(或另一种量的一部分)。 //需要有个中间变量来倒 int a = 3, b = 5; i...
分类:
编程语言 时间:
2014-12-15 18:45:32
阅读次数:
235
package com.xxx.xxx;/** * 1.直接选择排序 * 2.反转排序 * @author Administrator * */public class demo11 { //直接选择排序 /** * 直接选择排序比冒泡排序快一些 * 基本思想:将指定排序...
分类:
编程语言 时间:
2014-12-15 13:37:59
阅读次数:
175
package com.xxx.xxx;import java.util.Arrays;public class demo10 { /** * 1、数组查询 * 2、冒泡数组排序 * @param args */ public static void ma...
分类:
编程语言 时间:
2014-12-15 13:29:40
阅读次数:
223
前几天开始看树状数组了,然后开始找题来刷。 首先是 POJ 2299Ultra-QuickSort:http://poj.org/problem?id=2299 这题是指给你一个无序序列,只能交换相邻的两数使它有序,要你求出交换的次数。实质上就是求逆序对,网上有很多人说它的原理是冒泡排序,可...
分类:
编程语言 时间:
2014-12-13 23:22:22
阅读次数:
286
/* date:2014.12.13
冒泡排序思路:交换排序,通过相邻数据的比较、交换来达到排序的目的。
流程:1).对数组中的各数据,依次比较相邻的两个元素的大小;
2).如果前面的数据大于后面的数据,就交换这两个数据,经过第一轮的多次比较排序后,便可把最小(或最大)的数据拍好;
3).再以同样的方式把剩下的数据逐个进行比较,直至(n-1次...
分类:
编程语言 时间:
2014-12-13 17:55:22
阅读次数:
156