冒泡排序(交换)

冒泡排序(交换)

JavaScript

function bubbleSort(ary) {
    var i, j, temp, len = ary.length;
    for(i=1; i<len; i++) {
        for(j=len-1; j>=i; j--) {
            temp = ary[j];
            if(temp < ary[j-1]) {
                ary[j] = ary[j-1];
                ary[j-1] = temp;
            }
        }
    }
    return ary;
}
var ary = [5,4,3,2,1];
console.log(bubbleSort(ary));

 

Java

public class Test {
	
	public static void bubbleSort(int[] ary) {
		int i, j, temp;
		int len = ary.length;
		
		for(i=1; i<len; i++) {
			for(j=len-1; j>=i; j--) {
				temp = ary[j];
				if(ary[j] < ary[j-1]) {
					ary[j] = ary[j-1];
					ary[j-1] = temp;
				}
			}
		}
		
	}
	
	public static void main(String[] args) {
		int[] ary = {5,4,3,2,1};
		Test.bubbleSort(ary);
		for(int it : ary) {
			System.out.println(it);
		}

	}	
}

 

#include <stdio.h>

void bubbleSort(int ary[], int len) {
	int i, j, temp;
	
	for(i=1; i<len; i++) {
		for(j=len-1; j>=i; j--) {
			temp = ary[j];
			ary[j] = ary[j-1];
			ary[j-1] = temp;
		}
	}
}

main() {
	int i;
	int ary[]  = {5,4,3,2,1};
	bubbleSort(ary, 5);
	for(i=0; i<5; i++) {
		printf("%d", ary[i]);
	}
	
}

  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110540.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 一文搞懂│http 和 https 的通信过程及区别

    一文搞懂│http 和 https 的通信过程及区别拨云见日,带你学好网络安全通信基础

  • TS文件解码TS文件解密TS流批量下载和解码工具

    TS文件解码TS文件解密TS流批量下载和解码工具TS的全称则是TransportStream,即传输流,DVD节目中的MPEG2格式,是MPEG2-PS,MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。现主流视频网站都采用这种模式。m3u8是一个TS切片列表文件,它记录视频的每个切片的时长与顺序,下面通过图片了解一下:怎么得到视频网站中的m3u8文件呢?…

  • AbstractMethodError那些事

    AbstractMethodError那些事Java社区添加小编微信进入java学习交流群,小编微信:372787553,备注进群AbstractMethodErrorExceptioninthread“main”java.lang.AbstractMethodError这样的异常并不常见,如果您有幸遇到了,那么一定要珍惜,否则转瞬即逝!发生原因为什么会发生这样的错误?让我们看一下官方的解释:当应用程序尝试调用抽象方法时抛出。通常,该错误被编译器捕获;如果某些类的定义自上次编译当前执行的方法以来不兼容地更改,则此错误只能

  • JAVA高并发的三种实现

    提到锁,大家肯定想到的是sychronized关键字。是用它可以解决一切并发问题,但是,对于系统吞吐量要求更高的话,我们这提供几个小技巧。帮助大家减小锁颗粒度,提高并发能力。初级技巧-乐观锁乐观锁使用的场景是,读不会冲突,写会冲突。同时读的频率远大于写。悲观锁的实现:悲观的认为所有代码执行都会有并发问题,所以将所有代码块都用sychronized锁住乐观锁的实现:…

  • 路由追踪:traceroute/tcptraceroute

    路由追踪:traceroute/tcptraceroute一.工作原理traceroute:IP路由过程中对数据包TTL(TimetoLive,存活时间)进行处理。当路由器收到一个IP包时,会修改IP包的TTL(及由此造成的头部检验和checksum变化)。每收到一个包,检查这个的TTL是否是0。如果是,表明这个包还没有到达目的地,而且剩余时间不多了,肯定是到不了目的地了。这样路由器就简单地丢弃这个包,并给源主机发送ICMP通知,说这个包已经…

  • C# 数组截取

    C# 数组截取这段时间常常需要对数据的数据进行截取,以方便解析。原来一直用的Array.ConstrainedCopy();以及 Array.Copy();来进行数组复制截取 先看Array.ConstrainedCopy():其说明如下 publicstaticvoidConstrainedCopy(ArraysourceArray,intsourceIndex,Arraydes…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号