冒泡排序算法(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 ...
随机推荐
- Django2.0——django-filter: TypeError at *** __init__() got an unexpected keyword argument 'name'
在使用 Django2.0 版本的 Django Rest Framwork 时,Django DeBug 报错 django-filter: TypeError at *** __init__() ...
- spring02-组件注册-@ComponentScan-自动扫描组件&指定扫描规则
上一篇我们讲到,讲@Bean注解标在某个方法上,那么ioc容器启动的时候就会将方法返回值放到ioc容器中 在开发中,实际上包扫描用的比较多,接下来我们会介绍两种方式一种是基于xml,一种是基于注解. ...
- Opencv笔记(一):图像的基本操作
1.图像的读.显示和保存操作 import cv2 img = cv2.imread('filename',0); cv2.imshow('name',img); k=cv2.waitKey(0); ...
- Clairaut 定理 证明
(Clairaut 定理)设 $E$ 是 $\mathbf{R}^n$ 的开子集合,并设 $f:\mathbf{E}\to \mathbf{R}^{m}$ 是 $E$ 上的二次连续可微函数.那么对于一 ...
- MySQL导入及导出数据库
一.数据库导入 背景:已经从A机器把SQL文件导出,现在需要将sql文件导入B机器(两台机器都是Linux系统) 将sql文件上传到B机器,然后在B机器命令行执行以下命令(不用进入到数据库) 前提是t ...
- 吴裕雄--天生自然python Google深度学习框架:深度学习与深层神经网络
- class.forName() 和 classLoader 的区别
相同点: java中class.forName() 和 classLoader 都可用来对类进行加载 不同店: 1.class.forName()除了将类的 .class ...
- 2019ICPC南京网络赛B super_log(a的b塔次方)
https://nanti.jisuanke.com/t/41299 分析:题目给出a,b,mod求满足条件的最小a,由题目的式子得,每次只要能递归下去,b就会+1,所以就可以认为b其实是次数,什么的 ...
- require.ensure和require.context
require.ensure和require.context https://www.cnblogs.com/fantasy-zxf/p/6760390.html https://www.jiansh ...
- HTML的img标签:alt属性和title属性
当浏览器卖主扭曲了标准并且自顾自的不按规则去做一些事,他们可能会造成一些问题,或者至少产生了混淆.例子之一就是一些浏览器处理alt属性(一般会被错误的称作alt标签)的方式,比如拥有大量用户的Wind ...