复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。算法原理:冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了...
分类:
其他好文 时间:
2014-08-20 20:49:42
阅读次数:
179
经典的排序算法有十种,分别是:选择排序、插入排序、希尔排序、冒泡排序、堆排序、合并排序、快速排序、计数排序、基数排序和桶排序。
下面对这些算法分类如下:
选择排序:简单选择排序、堆排序
插入排序:直接插入排序、二分插入排序、希尔排序
快速排序:快速排序、随机化快速排序
线性时间排序:计数排序、基数排序、桶排序
其他:冒泡排序、合并排序
这些排序排序算法的时间复杂度,稳...
分类:
其他好文 时间:
2014-08-20 16:31:32
阅读次数:
185
基本原理
冒泡排序(Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
这样说还不是很明白,先看张图:
算法步骤:
1)比较相邻的...
分类:
编程语言 时间:
2014-08-20 16:27:12
阅读次数:
261
一.冒泡排序 int temp = 0; for (int j = 1; j < a.Length; j++) { for (int i = 0; i < a.Length - j; i++)//内循环,每走一趟会把最小值...
分类:
其他好文 时间:
2014-08-19 20:41:15
阅读次数:
175
1 int[] noSortArray = new int[] {10,100,30,50,70,16,11,5,7,9 }; 2 Console.WriteLine("数组内容为:" + "10,100,30,50,70,16,11,5,7,9")...
分类:
其他好文 时间:
2014-08-19 20:35:45
阅读次数:
171
1、冒泡排序冒泡排序是排序算法中最基本的一种排序方法,该方法逐次比较两个相邻数据的大小并交换位置来完成对数据排序,每次比较的结果都找出了这次比较中数据的最大项,因为是逐次比较,所以效率是O(N^2)的。[java]view plaincopypublicvoidbubbleSort(){intout...
分类:
其他好文 时间:
2014-08-19 16:06:24
阅读次数:
258
冒泡排序是两两比较相邻记录关键字,如果反序则交换。很奇怪,总有人写错,比如我寝室的zdc,曾几何时,他还很得意地和我说写出了冒泡~~ package my_algorithm; public class MyBubbleSort { public static void...
分类:
其他好文 时间:
2014-08-19 14:46:25
阅读次数:
115
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍上述八大排序算法。算.....
分类:
其他好文 时间:
2014-08-19 14:31:04
阅读次数:
280
// int array[] = {3, 2, 6, 9, 8, 5, 7, 1, 4}; // int count = sizeof(array) / sizeof(array[0]); // int flag = 1; // for (int i = 0; i array[j ...
分类:
其他好文 时间:
2014-08-19 00:54:43
阅读次数:
186