package huawei.exam;

public class BubbleSort {

	/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub int[] str={1,4,2,8};
BubbleSort obj=new BubbleSort();
System.out.println(obj.Bubble(str));
}
//冒泡算法是从后往前计算的,大的数字就像大的泡泡一样,跑到后面去了啊。
public String Bubble(int[] str){
int temp=0;
String result="";
for(int i=str.length-1;i>=0;--i){
for(int j=0;j<i;++j){
if(str[j+1]<str[j]){
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}
}
//for(int i=0;i<str.length;i++) result+=str;
return result; }
}

上面程序其实在数据转换方面存在一点点问题。如何把Int型数组转换成String类型的。

在师弟的帮忙下,程序有点回转,但是不是解决了上面那个问题。在子函数Bubble(int[] str)传参数的过程,老是会粗线问题。并且,Int型的数组,如果想要打印出来,只能一个一个打印。除非把int型数组转换成String,但是采用str.toString();还是粗现问题。并且静态方法只能调用静态变量,不能调用全局变量。

package huawei.exam;

public class BubbleSort {

	/**
* @param args
*/
static int str[]={1,4,2,8};
public static void main(String[] args) {
// TODO Auto-generated method stub //int[] str={1,4,2,8}; //定义一个整型的数组变量。
System.out.println("初始化前的排序数组为:");
for(int i = 0;i < str.length;++i)
System.out.println(str[i]);
BubbleSort obj=new BubbleSort();
obj.Bubble();
for(int i = 0;i < str.length;++i)
System.out.println(str[i]); }
//冒泡算法是从后往前计算的,大的数字就像大的泡泡一样,跑到后面去了啊。从小到大排序。
public String Bubble(){
int temp=0;
// System.out.println("初始化前的排序数组为:"+str);
for(int i=str.length-1;i>=0;--i){
for(int j=0;j<i;++j){
if(str[j+1]<str[j]){
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp; } }
} return str.toString(); }
}

把int[] str={};数组重新变为main()方法里的一个局部变量,此时程序也可以正常运行了。最终程序代码如下:

 package huawei.exam;

 public class BubbleSort {

     /**
* @param args
*/
//static int str[]={1,4,2,8};
public static void main(String[] args) {
// TODO Auto-generated method stub int[] str={1,4,2,8}; //定义一个整型的数组变量。
System.out.println("排序前的排序数组为:");
for(int i = 0;i < str.length;++i)
System.out.println(str[i]);
BubbleSort obj=new BubbleSort();
obj.Bubble(str);
System.out.println("排序后的排序数组为:");
for(int i = 0;i < str.length;++i)
System.out.println(str[i]); }
//冒泡算法是从后往前计算的,大的数字就像大的泡泡一样,跑到后面去了啊。从小到大排序。
public String Bubble(int[] str){
int temp=0;
// System.out.println("初始化前的排序数组为:"+str);
for(int i=str.length-1;i>=0;--i){
for(int j=0;j<i;++j){
if(str[j+1]<str[j]){
temp=str[j];
str[j]=str[j+1];
str[j+1]=temp; } }
}
return str.toString(); }
}

1用java实现冒泡排序算法以及解决的几个小问题。的更多相关文章

  1. Java基础--冒泡排序算法

    冒泡排序算法的运作如下:(从后往前) 比较相邻的元素,如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的元素. 针对 ...

  2. Java基础 -- 冒泡排序算法(带详细注释)

    冒泡排序的要点: 1.多轮排序,每轮排序中选出最大的元素放在最顶端,并且下次排序不再使用该元素; 2. 使用双for循环,外层for循环控制要排序的次数(轮数), 内层for循环控制当前要排序的元素并 ...

  3. Java实现冒泡排序算法

    一.基本思路: 冒泡排序是一种简单的交换类排序.其基本思路是,从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移.每经过 一趟排序后,关键字值最大的元素将移到末尾,此 ...

  4. Java常见排序算法之冒泡排序

    在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...

  5. java:高速排序算法与冒泡排序算法

     Java:高速排序算法与冒泡算法 首先看下,冒泡排序算法与高速排序算法的效率: 例如以下的是main方法: /**   *  * @Description:  * @author:cuiyaon ...

  6. Java中数组的几个常用算法:插入算法,删除算法,冒泡排序算法

    前言: 在Java中我们常常会用数组,提到数组就不得不介绍数组中常用到的几个算法. 有插入算法,删除算法,冒泡排序算法等. 在学习这几个数组的算法前,我们先来了解一下关于数组一些基本知识. 数组的基本 ...

  7. java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述

    算法是在有限步骤内求解某一问题所使用的一组定义明确的规则.通俗点说,就是计算机解题的过程.在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法.前者是推理实现的算法,后者是操作实现的算法. ...

  8. 基于Java实现的冒泡排序算法

    冒泡排序是一种简单基础的排序算法,相信在大学课堂里老师已经讲过了,现在我基于Java来实现一遍. 简述 冒泡排序正如其关键词一样,杂乱的气泡经过浮动,最后大的气泡飘到了上面而小的气泡在下面,无序的元素 ...

  9. 冒泡排序算法(C#、Java、Python、JavaScript、C、C++实现)

    一.介绍 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字母从Z到A)错误就把他们交换过来. 走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排 ...

随机推荐

  1. PHP封装返回Ajax字符串和JSON数组

    <?php class DBDA { public $host="localhost"; public $uid = "root"; public $pw ...

  2. 4.MySQL优化---多表查询优化

     整理自互联网 一.多表查询连接的选择: 相信这内连接,左连接什么的大家都比较熟悉了,当然还有左外连接什么的,基本用不上我就不贴出来了.这图只是让大家回忆一下,各种连接查询. 然后要告诉大家的是,需要 ...

  3. tensorflow 学习笔记-1

    http://www.jianshu.com/p/e112012a4b2d 参考的网站 -------------------------------------------------------- ...

  4. Mybatis_generator自动化生成代码

    1.Run as 2.ok

  5. storm入门原理介绍

    转自:http://www.cnblogs.com/wuxiang/p/5629138.html 1.hadoop有master与slave,Storm与之对应的节点是什么?2.Storm控制节点上面 ...

  6. LeetCode 314. Binary Tree Vertical Order Traversal

    原题链接在这里:https://leetcode.com/problems/binary-tree-vertical-order-traversal/ 题目: Given a binary tree, ...

  7. element-ui table 底部滚动条问题

    1.将 .el-table 标签css属性中的 position: relative; width: 100%; max-width: 100%; 修改成 position: absolute; wi ...

  8. Windbg内核调试之二: 常用命令

    运用Windbg进行内核调试, 熟练的运用命令行是必不可少的技能. 但是面对众多繁琐的命令, 实在是不可能全部的了解和掌握. 而了解Kernel正是需要这些命令的指引, 不断深入理解其基本的内容. 下 ...

  9. C# 加密和解密文件

    相关示例代码如下: using System; using System.IO; using System.Security; using System.Security.Cryptography; ...

  10. SQLite连接C#笔记

    不得不吐槽,实在是太坑了.以下几点一定要注意: 要下载两个东西,都要上官网.一个是SQLite for Windows,一个是System.Data.SQLite. 下载下来的DLL里面有个test, ...