学习笔记:冒泡排序的C++、JavaScript、Java实现
来源:互联网 发布:在线教学系统源码 编辑:程序博客网 时间:2024/06/15 16:17
冒泡排序的C++、JavaScript、Java实现
实现原理:以C++实现为例,排序过程使用嵌套的for循环完成的,对10个元素的数组,一个进行9轮比较,每轮要进行 len-i 次比较,以决出一个最大值。用下面的例子来说,共比较9轮,第一轮选一个最大的数放在最后,第二轮从剩下的数字中选一个最大的放在倒数第二…,直到最后一轮。
总结:冒泡排序比较容易实现,但是不论情况好坏,都要进行所有轮的比较,运行速度较慢。
(1)C++实现
void bubbleSort(int array[], int len) { int temp; for (int i = 1; i < len; i++) { //共比较 len-1 轮 for (int j = 0; j < len - i; j++) { //每一轮比较第一个到第len-i个数 if (array[j] > array[j + 1]) { //比较第j和j+1个数,大的放在后面 temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } }}int main() { int a[]={45,32,8,66,20,13,40,15,21,35}; int len = sizeof(a)/ sizeof(int); bubbleSort(a,len); for(int i = 0; i < len; i++){ cout<<a[i]<<" "<<endl; }}//输出 8 13 15 20 21 32 35 40 45 66
(2)JavaScript实现
function bubbleSort(array) { var temp; for (var i = 1; i < array.length; i++) { for (var j = 0; j < array.length - i; j++) { if (array[j] > array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } }}var a = [45,32,8,66,20,13,40,15,21,35];bubbleSort(a);console.log(a.join(" "));//输出 8 13 15 20 21 32 35 40 45 66
(3)Java实现
public class Test { public static void main(String[] args) { int[] a = { 45, 32, 8, 66, 20, 13, 40, 15, 21, 35 }; bubbleSort(a); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } } private static void bubbleSort(int[] array) { int temp; for (int i = 1; i < array.length; i++) { for (int j = 0; j < array.length - i; j++) { if (array[j] > array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } }}//输出 8 13 15 20 21 32 35 40 45 66
0 0
- 学习笔记:冒泡排序的C++、JavaScript、Java实现
- 学习笔记:插入排序的C++、JavaScript、Java实现
- 【学习笔记】java 实现冒泡排序
- 学习笔记:快速排序的C++、JavaScript(2种方法)、Java实现
- Java学习笔记排序算法-------冒泡排序
- go语言学习笔记之冒泡排序的实现
- 《多核程序设计》学习笔记:冒泡排序的并行实现
- C学习笔记——冒泡排序
- Java和C实现的冒泡排序(基本思想)
- java实现的冒泡排序
- 冒泡排序的Java实现
- Java实现的冒泡排序
- 冒泡排序的java实现
- 冒泡排序的Java实现
- java冒泡排序的实现
- Javascript实现冒泡排序
- javascript实现冒泡排序
- JavaScript实现冒泡排序
- Shader特效——“素描 Pencil Sketch”的实现【GLSL】
- 深入理解ButterKnife源码并掌握原理(四)
- Linux新手应掌握的10个基本命令
- 大话三轴加速度计
- 机器自动识别验证码的原理是怎么样的?
- 学习笔记:冒泡排序的C++、JavaScript、Java实现
- 晚上睡之前练习打字,打打吕鑫大师教我的
- 大话三轴地磁
- 深入理解ButterKnife源码并掌握原理(五)
- 大话pixhawk运行Ardu:Copter启动过程
- Linux IPC之System V共享内存
- 轮播特效
- hdu 5877 线段树+离散化+DFS
- java中volatile关键字的使用