import java.util.Arrays;

/**

*冒泡排序:时间复杂度O(N^2),空间复杂度O(1),稳定的排序

* 每趟确定一个元素的位置,所以需要arr.length趟排序,

*/

public class BubbleSort {

public static void bubbleSort(int[] arr){

if(arr==null||arr.length<2){//如果数组为空,或者数组长度小于2直接返回数组

return ;

}

//需要进行arr.length-1趟的排序

for(int i =arr.length ; i>0 ; i--){

for(int j = 1 ; j < i ; j++){

//如果前面一个元素大于后面一个元素的话,就将大的元素向后沉

if(arr[j-1]>arr[j]){

swap(arr,j-1,j);

}

}

}

}

private static void swap(int[] arr, int i, int j) {

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp ;

}

//test

public static int[] generateRandomArray(int size,int value){

//数组的长度是0到100之间

int[] arr= new int[(int)((size+1)*Math.random())];

for(int i = 0 ; i

arr[i] = (int)((value+1)*Math.random()) - (int)(value*Math.random());

}

return arr;

}

//test

public static int[] copyArray(int[] arr){

if(arr==null){

return null;

}

int[] res = new int[arr.length];

for(int i = 0 ; i

res[i] = arr[i];

}

return res ;

}

public static void main(String[] args){

int testTime = 1000000;

int size = 100;

int value = 100 ;

boolean succeed = true;

//测试次数为testTime次

for(int i = 0 ;i

//生成一个长度为0到100之间的随机数组

int[] arr1 = generateRandomArray(size,value);

int[] arr2 = copyArray(arr1);

bubbleSort(arr1);

comparator(arr2);

if(!isEqual(arr1,arr2)){

succeed=false;

break;

}

}

System.out.println(succeed?"Nice!":"Fucking fucked!");

//最后再做一个检验

int[] arr= generateRandomArray(size,value);

printArray(arr);

bubbleSort(arr);

printArray(arr);

}

private static void printArray(int[] arr) {

for(int i = 0 ; i < arr.length ; i++){

System.out.print(arr[i]+" ");

}

System.out.println();

}

private static boolean isEqual(int[] arr1, int[] arr2) {

if((arr1==null&&arr2!=null)||(arr1!=null&&arr2==null)){

return false;

}

if(arr1==null&&arr2==null){

return true;

}

if(arr1.length!=arr2.length){

return false;

}

for(int i = 0; i

if(arr1[i]!=arr2[i]){

return false;

}

}

return true;

}

private static void comparator(int[] arr) {

Arrays.sort(arr);

}

}

java冒泡测试代码,冒泡排序(java可直接跑,算法思想等小儿科不多说直接上代码)...相关推荐

  1. 快速排序 C++代码实现及其算法思想及时间复杂度分析及优化 恋上数据结构笔记

    文章目录 复习梗概 算法思想 算法复杂度分析及稳定性 如何优化? 快速排序改进版代码C++ 快速排序个人青春版代码 完整代码 复习梗概 算法思想,别的排序名字直接就能让人联想到它的算法思想,唯独快速排 ...

  2. 块坐标下降法算法matlab代码,《最优化:建模、算法与理论》、《最优化计算方法》代码展示...

    <最优化:建模.算法与理论>.<最优化计算方法>代码展示 此系列页面为配套<最优化:建模.算法与理论>.<最优化计算方法>的代码展示, 包含完整的算法和 ...

  3. java冒泡测试代码_数据结构与算法—冒泡排序(Java实现)

    [toc] 冒泡排序 程序代码package com.uplooking.bigdata.datastructure;import java.util.Arrays;public class Bubb ...

  4. java 冒泡_java实现冒泡排序

    冒泡排序: 算法重复走访要排序的数列,一次比较两个元素,如果它们顺序错误就交换它们的位置,这样最大的数就到了最后,重复操作即可得到有序数列. 冒泡排序算法运行: 1. 比较相邻的元素.如果第一个比第二 ...

  5. java写测试小工具,java试题自我测试小工具

    java试题自我测试小工具 北京石油化工学院 数理系 科 072 071616 刘红育 1 Java 语言综合设计实验报告 --GUI 编程设计题目: Java 试题自我测试小工具 班级: 学号: 姓 ...

  6. java入学测试_OLI 课程 Java入学考试的五道题

    ✔️ 机械.自动.不需要智慧地执行原始的内置指令. 字节码相同,JVM不同(体现平台) ✖️ In modern computers instructions can be stored and ma ...

  7. java并发测试 线程池,Java并发编程——线程池

    1.任务与执行策略间的隐性耦合 一些任务具有这样的特征:需要或者排斥某种特定的执行策略.对其他任务具有依赖性的任务,就会要求线程池足够大,来保证它锁依赖任务不必排队或者不被拒绝:采用线程限制的任务需要 ...

  8. android象棋源码 ai,中国象棋代码,参考象眼,AI算法相当给力

    [实例简介] 中国象棋代码,参考象眼,AI算法相当给力 [实例截图] [核心代码] chineseChess └── chineseChess ├── AndroidManifest.xml ├── ...

  9. 北邮22信通:二叉树的遍历书上代码完整版

    北邮22信通一枚~    跟随课程进度每周更新数据结构与算法的代码和文章  持续关注作者  解锁更多邮苑信通专属代码~ 上一篇文章: 下一篇文章: 目录 一.储存最简单数据类型的二叉树 代码部分: 代 ...

最新文章

  1. matlab数据可视化总结,机器学习----Matlab数据可视化总结(plot篇)
  2. vue-video-player集成videojs-contrib-hls实现.m3u8文件播放
  3. linux nginx postgresql php,常用Web环境架设手册PNP:Postgresql+Nginx+PHP
  4. 相对URI以及base的设置
  5. C# 匿名方法及Lambda表达式
  6. 宅在家里写数据库中MD5加密
  7. 随记:Linux下修改网络配置
  8. atitit.LimeSurvey 安装 attilax 总结
  9. ecmascript2015
  10. 岁末精选:2005国外经典语录
  11. 语音备忘录里的录音怎么导出来
  12. 工具推荐 | 分析大数据最需要的Top 10数据挖掘工具
  13. 什么是GPT模型,GPT下载和国内镜像
  14. Linux开启/关闭mysql服务命令
  15. 工厂怎么使用oracle系统,如何用MES系统建立智能工厂?
  16. wx-wx-wx-wx-wx-wx-wx-wx-wx-wx-wx
  17. 数据库自动备份(Slq Server 代理作业)
  18. 慎用一键修改hosts软件
  19. InForSec@武汉“江夏晴川”网络安全Workshop记录-2
  20. 第十四章 简单数据库应用的创建及MASTAPP介绍(三)

热门文章

  1. TechED2010与我(一)—— 初来乍到
  2. [地产]“用90%的时间考虑失败”——李嘉诚(长江实业集团董事长)
  3. 前后落差大用什么词语_形容落差很大的成语_四字词语 - 成梦词典
  4. 关于配置环境变量相关解答
  5. 信息学奥赛一本通(1324:【例6.6】整数区间)
  6. 信息学奥赛一本通(1319:【例6.1】排队接水)
  7. 信息学奥赛一本通(2040:【例5.7】筛选法找质数)
  8. 折线分割平面(HDU-2050)
  9. 30 MM配置-采购-采购申请-采购申请审批策略-编辑类
  10. 火柴人小程序linux,火柴人你瞅啥小程序