冒泡排序算法(C#、Java、Python、JavaScript、C、C++实现)
一.介绍
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
三.时间复杂度

C#代码实现
using System; namespace BubbleSort
{
class Program
{
static void Main(string[] args)
{
int[] arr = { , , , , };
foreach (var item in GetBubbleSort(arr))
{
Console.WriteLine(item);
} Console.ReadLine();
} static int[] GetBubbleSort(int[] arr)
{
int count = ;
int temp = ;
for (int i = ; i < arr.Length - ; i++)
{
for (int j = i + ; j < arr.Length; j++)
{
if (arr[j] < arr[i])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
count++;
}
count++;
} Console.WriteLine(count);
return arr;
}
}
}
Java代码实现
package cn.lb.test;
public class BubbleSort {
public static void main(String[] args){
int[] arr={2,5,6,4,3};
for (int item :getBubbleSort(arr))
{
System.out.println(item);
}
}
public static int[] getBubbleSort(int[] arr)
{
int count=0;
int temp=0;
for (int i = 0; i <arr.length-1 ; i++) {
for (int j =0; j < arr.length-1-i; j++) {
if (arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
count++;
}
count++;
}
return arr;
}
}
Python代码实现
def getBubbleSort(arr):
for i in range(len(arr)-1,0,-1):
for j in range(0,i):
if arr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]
return arr
arr=[2,4,6,3,5]
arr=getBubbleSort(arr)
print(arr)
JavaScript代码实现
let getBubbleSort=(arr)=>{
let temp=0;
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length-i-1; j++) {
if (arr[j]<arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
let arr=[2,5,6,4,3];
arr=getBubbleSort(arr);
arr.forEach(num=>{
console.log(num);
});
C语言实现
#include <stdio.h>
int* getBubbleSort(int arr[], int len)
{
int i, j, temp;
for (i = ; i < len - ; i++)
{
for (j = ; j < len - i - ; j++)
{
if (arr[j] > arr[j + ])
{
temp = arr[j];
arr[j] = arr[j + ];
arr[j + ] = temp;
}
}
}
return arr;
} int main() {
int arr[] = { ,,,, };
int len = (int)sizeof(arr) / sizeof(*arr);
int* p = getBubbleSort(arr, len);
int i;
for (i = ; i < len; i++)
{
printf("%d", *(p + i));
}
}
C++实现
#include <iostream>
using namespace std; int* getBubbleSort(int arr[], int len)
{
int i, j, temp;
for (i = ; i < len - ; i++)
{
for (j = ; j < len - i - ; j++)
{
if (arr[j] > arr[j + ])
{
temp = arr[j];
arr[j] = arr[j + ];
arr[j + ] = temp;
}
}
}
return arr;
} int main() {
int arr[] = { ,,,, };
int len = (int)sizeof(arr) / sizeof(*arr);
int* p = getBubbleSort(arr, len);
int i;
for (i = ; i < len; i++)
{
cout<<("%d", *(p + i))<<endl;
}
}
冒泡排序算法(C#、Java、Python、JavaScript、C、C++实现)的更多相关文章
- 编程开发(C/C++&Java&Python&JavaScript&Go&PHP&Ruby&Perl&R&Erlang)
使用Docker快速部署主流编程语言的开发.编译环境及其常用框架,包括C.C++.Java.Python.JavaScript.Go.PHP.Ruby.Perl.R.Erlang等. 在今后采用编程语 ...
- 冒泡排序算法(Java)
冒泡排序即每次遍历.相邻数字间进行比較,前者大于后者进行交换,不断将最大值后移,直至沉至最后位置:算法关键要点在于确定每次循环的边界. 后面两种算法则是对冒泡排序一定程度上的改良,但相对于其它排 ...
- 简单的冒泡排序算法(java)
package lianxi; public class BubbleSort { public static void main(String[] args) { int[] array = {12 ...
- Java调用Javascript、Python算法总结
最近项目中经常需要将Javascript或者Python中的算法发布为服务,而发布Tomcat服务则需要在Java中调用这些算法,因此就不免要进行跨语言调用,即在Java程序中调用这些算法. 不管是调 ...
- [转]Java调用Javascript、Python算法总结
最近项目中经常需要将Javascript或者Python中的算法发布为服务,而发布Tomcat服务则需要在Java中调用这些算法,因此就不免要进行跨语言调用,即在Java程序中调用这些算法. 不管是调 ...
- 冒泡排序算法的C++,Java和Python实现和冒泡排序算法三种语言效率的比较
冒泡排序原理: 这一篇百度经验讲得很好,我不多说了 https://jingyan.baidu.com/article/6525d4b13f920bac7d2e9484.html 他讲的是C语言,没有 ...
- 30个深度学习库:按Python、C++、Java、JavaScript、R等10种语言分类
30个深度学习库:按Python.C++.Java.JavaScript.R等10种语言分类 包括 Python.C++.Java.JavaScript.R.Haskell等在内的一系列编程语言的深度 ...
- indexOf原理,Java,javascript,python实现
简介 最近做项目的时候,发现无论是前端还是后端,indexOf出现的概率都非常频繁,今天我们来看下他的实现原理吧! indexOf的含义:给定一个字符串去匹配另一个字符串的下标,如果匹配到,返回下 ...
- java:高速排序算法与冒泡排序算法
Java:高速排序算法与冒泡算法 首先看下,冒泡排序算法与高速排序算法的效率: 例如以下的是main方法: /** * * @Description: * @author:cuiyaon ...
随机推荐
- C# 使用 HttpPost 请求调用 WebService (转)
转自 https://www.cnblogs.com/Brambling/p/7266482.html 之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最 ...
- 什么是MTF曲线
MTF(Modulation Transfer Function)是衡量镜头性能的一个重要指标.将镜头把被摄体所具有的对比度再现到像面上的忠诚度以空间频率特性进行表示,便绘成了MTF曲线图. 曲线图的 ...
- linux下别名的设定
命令别名设定功能: (alias)假如我需要知道这个目录底下的所有文件 (包含隐藏档) 及所有的文件属性,那么我就必须要下达『 ls -al 』这样的指令串,比较麻烦,我们可以为其设定别名为lm al ...
- UML-如何迭代
未完待续...
- drf框架概况-resful接口规范-请求模块-渲染模块-Postman-drf请求生命周期
drf框架 全称:django-rest- framework 知识点: """ 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码-基于restful ...
- Linux centos 下安装redis
一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 二.选择安装文件 ...
- python3.7解释器安装及配置虚拟环境
目录 环境准备 一.开始安装解释器(安装很简单,直接上图) 二.配置pip工具下载源 安装虚拟环境 环境准备 1.Windows系统,本人是 Windows10专业版 2.python解释器安装包,本 ...
- 吴裕雄--天生自然python机器学习:使用朴素贝叶斯过滤垃圾邮件
使用朴素贝叶斯解决一些现实生活中 的问题时,需要先从文本内容得到字符串列表,然后生成词向量. 准备数据:切分文本 测试算法:使用朴素贝叶斯进行交叉验证 文件解析及完整的垃圾邮件测试函数 def cre ...
- 吴裕雄--天生自然python学习笔记:python 用pygame模块基本绘图
绘制几何图形是游戏包的基本功能,很多游戏角色都是由基本图形组合而成的 . 绘制矩形: pygame.draw.rect Pygam巳绘制矩形的语法为: 用基本绘图绘制一个人脸 用基本绘图功能绘制人脸 ...
- 导入import的多种形式
参考资料:anaconda官方资料 一.module(模块) 比如fibo是个模块(.py文件),其中有fib.fib2等函数 第一种形式:import fibo 在当前的符号表中,这并不会直接进入到 ...