重新理清冒泡排序

任何一句自然语言都可以通过java代码来实现,原理很简单。


1.一(段)句话是一个需求(需求分析)

2.java是面向对象的

3.通过面向对象可以挖掘一句话中包含的对象和动作(概要设计)

4.用java表达对象,动作间的相互关系(编码)

5.运行(回归测试)

6.部署运行(正式上线,解决问题)

---------------------------------------------------------------------

以前我也写过冒泡排序,但是貌似不是真正的冒泡排序。

第一,冒泡排序是从前比较到后,你从后比较到前虽然结果一样,但是不是冒泡排序的逻辑。

第二,冒泡排序是把最大的数放在最后,你把最大的数放在前面结果一样可以排,但那也不是真正的冒泡。


今天重新梳理了冒泡排序,代码如下,按照原理去写代码,才是真正的实现需求。


---------------------------------------------------------------------

package com.tonking.test;


public class TopPop {


/**
* 真的的冒泡排序
* @author  chendongj
* @time    2015-12-23
*/
public static void main(String[] args) {
int  []a   = {3,43,5,57,6,7,9,8,65,4,32,13,45,67,544};  //乱序的数组

/*
* 分析:冒泡排序是从前面开始两两比较,把最大的放在最后面
* 1.数组一开始长度为a.lentth,一次循环冒泡一个,数组长度减1;
* 由此得最外层循环for(int i = a.length-1; i > 0; --i)才是标准写法,
* 其中a.length-1为数组最大下标。
* 2.数组从开始进行两两比较,第一次比较到数组最大长度,随后冒泡出一个,比较的位数减一
* 由此内层循环的标准写法为:for (int j = 0; j < i; ++j)
* 其中i为外层循环的需要比较数组的最大下标。 
*/
int   temp  = 0; //临时变量
for (int i = a.length-1; i > 0; --i) {
for (int j = 0; j < i; ++j) {
if(a[j]>a[j+1]){//比较交换
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
System.out.println("冒泡排序后的数组:");
for (int i = 0; i < a.length; i++) { //输出排序后的数组
System.out.print(a[i]+",");
}
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋力向前123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值