冒泡排序
来源:互联网 发布:oracle数据库课程设计 编辑:程序博客网 时间:2024/06/07 15:14
冒泡排序
伪代码 在notepad++上写的,可能不太规范,请各位看官谅解。
BubbleSort(input ele[],input length)for i <- 1 to length step 1for j <- i+1 to 0 step -1if ele[j] < ele [j - 1]swap (ele[j],ele[j - 1])end ifend
下面这一段是摘自算法导论 P23页的伪代码:
BUBBLESORT(A)for i = 1 to A.length-1for j = A.length downto i + 1if A[j] < A[j - 1]exchange A[j] with A[j - 1]
C++,在vs2010上运行。
void BubbleSort (int a[],int length){int i,j;for (i = 0 ;i < length-1; i++)for (j = i + 1;j >= 0 ; j--)if (a[j-1] > a[j])swap (&a[j-1],&a[j]);}
void swap(int *a,int *b){int c;c = *a;*a = *b;*b = c;}
python ,在Jetbrains pycharm 上运行通过。
def BubbleSort(array): for i in range(len(array)-1): for j in range(i+1, 0,-1): if array[j-1] > array[j]: array[j-1], array[j] = array[j], array[j-1]
下面这个与算法导论的代码匹配:
def bubble_sort(list): for i in range(0, list.__len__()): for j in range(list.__len__()-1, i, -1): if list[j] < list[j-1]: list[j], list[j-1] = list[j-1], list[j] return listprint bubble_sort([5, 3, 2, 4, 1, 0, 6, 9, 8, 7])
算法思想呢,其实很简单的。
i是控制i以及i之前的元素,而j呢,是将之前i控制的范围之内的元素变得有序,另外,交换是通过swap函数来进行交换的,交换两个相邻的元素就好。
这样,就可以排出顺序了。
0 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 移动端rem布局
- 【c++】(初识)继承
- Buffered增强添加IO流功能
- Linux的五个查找命令
- Mybatis学习之读取配置文件(三)
- 冒泡排序
- 当文件中存在NULL时,如何读取文件,使其转为NA?
- matcaffe 使用中,matlab直接错误退出问题
- Linux运维笔记-文档总结-Linux中系统服务管理
- 两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!
- 由于下列原因,安装程序无法继续microsoft office 2016 需要通用CRT(KB2999226)
- 【编程题】好多鱼!--大鱼吃小鱼问题
- 2014 蓝桥杯JavaB组省赛 李白打酒
- 安装Win7+Ubuntu双系统