冒泡排序是很easy理解和实现,,以从小到大排序举例:设数组长度为N。1.比較相邻的前后二个数据,假设前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,假设N不为0就反复前面二步,否则排序完毕...
分类:
编程语言 时间:
2015-01-05 14:45:26
阅读次数:
107
先从最简单的实现冒泡排序:
# -*- coding: UTF-8 -*-
intarray=[3,4,5,1,2,7,2,9,0]
def bubble(array):
for i in range(1,len(array)):
for j in range(i):
if array[j] > array[i]:
array[j],array[i]...
分类:
编程语言 时间:
2015-01-04 23:05:51
阅读次数:
245
1.冒泡排序
基本思想是:两两比较相邻记录的关键字,如果反序则交换
冒泡排序时间复杂度最好的情况为O(n),最坏的情况是O(n^2)
改进思路1:设置标志位,明显如果有一趟没有发生交换(flag = false),说明排序已经完成
改进思路2:记录一轮下来标记的最后位置,下次从头部遍历到这个位置就Ok.
原冒泡排序代码如下:
void swap(int l...
分类:
编程语言 时间:
2015-01-04 19:16:51
阅读次数:
266
1 #include 2 3 void bubbleAlgorithmSort(int array[], int arrayCount); 4 int main(int argc, const char * argv[]) { 5 6 int array[] = {1,3,2,...
分类:
编程语言 时间:
2015-01-04 17:00:07
阅读次数:
196
留着给自己用吧... public class FanXingHelper where T:IComparable { /// /// 冒泡排序算法 /// /// public T[] MaoPao(T[] arra...
分类:
编程语言 时间:
2015-01-04 15:07:55
阅读次数:
150
昨日写完冒泡排序,和大多数人的感觉一样,太简单,丝毫没有挑战性。但楼主是一个追求踏实平稳的人,希望地基坚固,也为方便后面学习和研究更加高深的算法。但在研究效率上还有待提高,楼主一定好好努力。今天将会写完选择排序 和 插入排序,本文主在选择排序。一. 算法描写叙述 选择排序:比方在一个长度为N的...
分类:
编程语言 时间:
2015-01-04 11:10:34
阅读次数:
106
1.冒泡排序:
思路:将相邻的逆序元素交换为顺序排列,直到整个序列有序,算法如下:
/**
* 冒泡排序-最初实现,时间复杂度O(n^2)
* @param arr 待排序的数组
* @param lo 待排序区间的起始位置
* @param hi 待排序区间的结束位置
*/
public static void bubbleSort(int[] arr, int lo, int ...
分类:
编程语言 时间:
2015-01-03 17:22:28
阅读次数:
242
快速排序是最流行的,也是速度最快的排序算法(C++ STL 的sort函数就是实现的快速排序); 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数...
分类:
编程语言 时间:
2015-01-03 14:41:57
阅读次数:
180