排序--冒泡排序(java语言实现)

一.排序算法

排序是在日常生活中需要经常面对的问题,价格,年龄,身高等等。而对于排序算法,又有常见的冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等等。在学习了程杰的《大话数据结构》之后,由于其是基于C语言编写,所以自己根据提供的思路基于Java语言来对各种算法实现。

二.如何测试自己所写代码的正确性

简单来说,比如一个数列{5,3,6,9,4,7},在自己设计的排序算法之后,进行简单测试之后,按递增的顺序排成了{3,4,5,6,7,9}。而如果进行大规模样本测试之后,假若出现了排序出错的情况,如上个数列排成了{4,3,5,6,7,9}。即无论规模大小,样本数量大小,排序始终都能给出正确的结果,这样代码才算是写正确了。而如何进行对自己代码进行大规模测试,就用到了对数器。

对数器

对数器的概念和使用
(1)有一个你想要测试的方法a
(2)有一个或者自己实现一个绝对正确(暂不考虑复杂度)的方法b-----比如Java语言的库中自带数列排序,它就是绝对正确的
(3)设计一个随机样本产生器(规模随机,数列元素大小随机)
(4)定义比对方法
(5)方法a与方法b对比很多次来看方法b是否正确
(6)只要有一个样本对比出错,打印出来看看,是哪里出了问题
(7)再进行大样本数量测试之后,仍然没有对比错误,自己所写排序代码就是正确的

冒泡排序

冒泡排序是最简单的排序,思路并不复杂,两两比较,先第一个元素与之后所有元素进行比较,如果比后面元素大则交换,然后第二个元素执行同样的操作,直到倒数第二个元素与最后一个元素比较完成结束。最简单的思路两个变量i,j。i从第一个遍历到倒数第二个元素,j从i+1元素开始遍历,到最后一个。代码如下:

public static void bubbleSort(int[] arr){
        if(arr==null || arr.length == 1){
            return;
        }
     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值