1用java实现冒泡排序算法以及解决的几个小问题。
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实现冒泡排序算法以及解决的几个小问题。的更多相关文章
- Java基础--冒泡排序算法
冒泡排序算法的运作如下:(从后往前) 比较相邻的元素,如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的元素. 针对 ...
- Java基础 -- 冒泡排序算法(带详细注释)
冒泡排序的要点: 1.多轮排序,每轮排序中选出最大的元素放在最顶端,并且下次排序不再使用该元素; 2. 使用双for循环,外层for循环控制要排序的次数(轮数), 内层for循环控制当前要排序的元素并 ...
- Java实现冒泡排序算法
一.基本思路: 冒泡排序是一种简单的交换类排序.其基本思路是,从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移.每经过 一趟排序后,关键字值最大的元素将移到末尾,此 ...
- Java常见排序算法之冒泡排序
在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...
- java:高速排序算法与冒泡排序算法
Java:高速排序算法与冒泡算法 首先看下,冒泡排序算法与高速排序算法的效率: 例如以下的是main方法: /** * * @Description: * @author:cuiyaon ...
- Java中数组的几个常用算法:插入算法,删除算法,冒泡排序算法
前言: 在Java中我们常常会用数组,提到数组就不得不介绍数组中常用到的几个算法. 有插入算法,删除算法,冒泡排序算法等. 在学习这几个数组的算法前,我们先来了解一下关于数组一些基本知识. 数组的基本 ...
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述
算法是在有限步骤内求解某一问题所使用的一组定义明确的规则.通俗点说,就是计算机解题的过程.在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法.前者是推理实现的算法,后者是操作实现的算法. ...
- 基于Java实现的冒泡排序算法
冒泡排序是一种简单基础的排序算法,相信在大学课堂里老师已经讲过了,现在我基于Java来实现一遍. 简述 冒泡排序正如其关键词一样,杂乱的气泡经过浮动,最后大的气泡飘到了上面而小的气泡在下面,无序的元素 ...
- 冒泡排序算法(C#、Java、Python、JavaScript、C、C++实现)
一.介绍 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字母从Z到A)错误就把他们交换过来. 走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排 ...
随机推荐
- C++中预定义的宏
以下信息摘自与标准C++的文档中. 如果把这些宏加在程序的日志中,它将为开发人员进行问题分析提供了很好的帮助. standard c++ 1998版The following macro names ...
- NetCore博客
NetCore外国一些高质量博客 https://www.cnblogs.com/fancunwei/p/9605627.html 前言 我之前看.netcore一些问题时候,用bing搜索工具搜到了 ...
- 《Javascript高级程序设计》阅读记录(五):第六章 上
这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 <Javascript ...
- Long Jumps(二分查找lower_bound()函数的运用)
Valery is a PE teacher at a school in Berland. Soon the students are going to take a test in long ju ...
- Maven里头的pom.xml配置详解
正常的pom配置文件如下所示: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...
- 开放群组架构TOGAF
作于一个架构师尤其是企业架构师来说,丰富的理论知识可以帮助他在架构规划及管理过程中站在更高的角度去看待问题,历史发展原因有很多已成体系的架构理论,TOGAF是近年来比较接地气的,受到了政府和银行业的重 ...
- 洛谷【P2669】NOIP2015普及组 T1金币
我对模拟的理解:http://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.luogu.org/problemnew/show/P266 ...
- 用Azure上Cognitive Service的Face API识别人脸
Azure在China已经发布了Cognitive Service,包括人脸识别.计算机视觉识别和情绪识别等服务. 本文将介绍如何用Face API识别本地或URL的人脸. 一 创建Cognitive ...
- Linux驱动 - SPI驱动 之四 SPI数据传输的队列化
我们知道,SPI数据传输可以有两种方式:同步方式和异步方式.所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返 ...
- 自然语言处理--nltk安装及wordnet使用详解
环境:python2.7.10 首先安装pip 在https://pip.pypa.io/en/stable/installing/ 下载get-pip.py 然后执行 python get-pip. ...