转自:http://blog.chinaunix.net/uid-20773165-id-1847742.html1.稳定性比较插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的选择排序、希尔排序、快速排序、堆排序是不稳定的2.时间复杂性比较插入排序、冒泡排序、选择排序的时间复杂性为...
分类:
编程语言 时间:
2015-01-25 19:38:46
阅读次数:
263
思路:依次比较数组中的第一个元素和第二个元素,如果第一个元素大于第二个元素,则交换位置,所以需要两个函数:交换位置函数和比较函数比较轮数为数组长度var arr=[2,58,49,26,34];function change(f,s){ var temp=arr[f]; arr[f]=arr[s];...
分类:
编程语言 时间:
2015-01-25 15:04:26
阅读次数:
143
1、冒泡排序1)原理说明:反复遍历要排序的数列,一次比較两个元素,假设他们的顺序错误就把他们交换过来。走訪数列的工作是反复地进行直到没有再须要交换,也就是说该数列已经排序完毕。2)代码实现:package com.test.sort;public class BubbleSort{ publi...
分类:
编程语言 时间:
2015-01-25 12:25:51
阅读次数:
182
常见经典排序算法1.希尔排序2.二分插入法3.直接插入法4.带哨兵的直接排序法5.冒泡排序6.选择排序7.快速排序8.堆排序排序算法对比一.希尔(Shell)排序法(又称宿小增量排序,是1959年由D.L.Shell提出来的)/* Shell 排序法 */#include void sort(int...
分类:
编程语言 时间:
2015-01-24 12:53:51
阅读次数:
219
基本原理:比较相邻的元素。每一轮选出一个最大的元素,重复这个过程算法复杂度:O(n2)算法实现:void Bubblesort(int array[],int n){ int temp; for (int j = 0; j != n-1;++j) { for (int...
分类:
编程语言 时间:
2015-01-23 21:20:54
阅读次数:
220
给一个序列,如果经过k次冒泡能使其变为单增序列,则称该序列为k回合冒泡序列
现在给你n,k, 问在n的全排列中,k回合冒泡序列有多少个
这题看规模就是要推一个公式出来
discuss里的一个解法非常好,让人可以理解
对于n个元素,假设为{0,1,...n- 1},可以发现
对于任意一个排列,假设L(i) 表示位置i上的元素的前面有多少数字比它大, 那么得到了一个L序列。
那么可...
分类:
编程语言 时间:
2015-01-23 16:23:30
阅读次数:
131
准备好好学习js了,js写的第一个排序var arr = [2,4,1,5,3];function handle(arr){ for(var i=0;iarr[j+1]){ var tmp=arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; }...
分类:
编程语言 时间:
2015-01-22 21:43:59
阅读次数:
226
在C#中常用的数组排序的方法有:选择排序法、冒泡排序法、插入排序法和希尔排序法等。一、选择排序法using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Test{ clas...
分类:
编程语言 时间:
2015-01-22 17:01:04
阅读次数:
212
最近面试,冒泡又出现了。凭着感觉做完题,回来赶紧百度,发现跟我的不太一样,自己试了一下,感觉结果正确。留作纪念吧。 int[] arr = new int[] { 9, 6, 7, 5, 9, 10, 4, 3, 6, 1, 100 }; int temp = 0;...
分类:
编程语言 时间:
2015-01-22 09:20:49
阅读次数:
204
数组-03. 冒泡法排序(20)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者徐镜春(浙江大学)将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必...
分类:
编程语言 时间:
2015-01-22 00:11:55
阅读次数:
464