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)错误就把他们交换过来. 走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排 ...
随机推荐
- hdu-2544-最短路(dijkstra算法模板)
题目链接 题意很清晰,入门级题目,适合各种模板,可用dijkstra, floyd, Bellman-ford, spfa Dijkstra链接 Floyd链接 Bellman-Ford链接 SPFA ...
- L124
I have a toothache because there is a cavity in one of my teeth. I founded an orphanage last year an ...
- BZOJ - 2588 Spoj 10628. Count on a tree (可持久化线段树+LCA/树链剖分)
题目链接 第一种方法,dfs序上建可持久化线段树,然后询问的时候把两点之间的所有树链扒出来做差. #include<bits/stdc++.h> using namespace std; ...
- LeetCode Sum of Square Numbers
原题链接在这里:https://leetcode.com/problems/sum-of-square-numbers/description/ 题目: Given a non-negative in ...
- C++语言对C的增强(1)——实用性、变量检测、struct类型、C++中所有变量和函数都必须有类型、bool类型、三目运算符
1.“实用性”增强 C语言中的变量都必须在作用域开始的位置定义,C++中更强调语言的“实用性”,所有的变量都可以在需要使用时再定义. 2.变量检测加强 在C语言中,重复定义多个同名的全局变量是合法的: ...
- 解决count distinct多个字段的方法
Distinct的作用是用于从指定集合中消除重复的元组,经常和count搭档工作,语法如下 COUNT( { [ ALL | DISTINCT ] expression ] | * } ) 这时,可能 ...
- 证书脚本--生成csr,key
#!/bin/sh # this script can make certificate of each line in file you point which one! if [ $# -ne 1 ...
- ETHNET DHCP的两种方式
DHCP API: nx_dhcp_create nx_dhcp_start nx_dhcp_stop nx_dhcp_delete nx_ip_address_get //客户端IP获取 nx_dh ...
- Linux python安装
Linux 安装 Python3.5 1. 准备 操作系统:Red Hat Enterprise Linux Server release 6.5 (Santiago) Python 安装包:Py ...
- 第十四届华中科技大学程序设计竞赛决赛同步赛 A - Beauty of Trees
A - Beauty of Trees 题意: 链接:https://www.nowcoder.com/acm/contest/119/A来源:牛客网 Beauty of Trees 时间限制:C/C ...