java中最简单的方法冒泡排序?

如题所述

public void bubbleSort(int[] data, String sortType) {

if (sortType.equals("asc")) { //正排序,从小排到大

//比较的轮数

for (int i = 1; i < data.length; i++) {

//将相邻两个数进行比较,较大的数往后冒泡

for (int j = 0; j < data.length - i; j++) {

if (data[j] > data[j + 1]) {

//交换相邻两个数

swap(data, j, j + 1);

}

}

}

} else if (sortType.equals("desc")) { //倒排序,从大排到小

//比较的轮数

for (int i = 1; i < data.length; i++) {

//将相邻两个数进行比较,较大的数往后冒泡

for (int j = 0; j < data.length - i; j++) {

if (data[j] < data[j + 1]) {

//交换相邻两个数

swap(data, j, j + 1);

}

}

}

} else {

System.out.println("您输入的排序类型错误!");

}

printArray(data);//输出冒泡排序后的数组值

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-30
冒泡双向排序,速度快点,一次内循环把最大和最少的排序好了:
int[] a = {4,234,6,1,35,75,3546,342,74,754,7,24,75,33,7532,2,33,33,5,7,7,7};
for(int i = 0;i < a.length/2;i++ ) {
int temp = i;
for(int j = i; j < a.length - 1-i; j++) {
if(a[j] > a[j+1] ) {
int t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
if(a[j] < a[temp]) {
temp = j;
}
}
if(i!=temp) {
int t = a[i];
a[i] = a[temp];
a[temp] = t;
}
}
第2个回答  推荐于2018-03-30
package bubble_sort;

import java.util.Scanner;

public class Sort {

/**
* 冒泡排序
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入要排序的个数:");
int counts = input.nextInt();
int[] temp = new int[counts];
for (int i = 0; i < counts; i++) {// 赋值
System.out.println("请输入第" + (i + 1) + "数:");
temp[i] = input.nextInt();
}
for(int k=0, conversion=0;k<counts;k++){//降序
for(int j=0;j<(counts-1);j++){
if(temp[j]>temp[j+1]){
conversion=temp[j];
temp[j]=temp[j+1];
temp[j+1]=conversion;
}
}
}
System.out.println("降序后");
for(int g=0;g<counts;g++){//输出
System.out.println(temp[g]);
}
for(int k=0, conversion=0;k<counts;k++){//升序
for(int j=0;j<(counts-1);j++){
if(temp[j]<temp[j+1]){
conversion=temp[j];
temp[j]=temp[j+1];
temp[j+1]=conversion;
}
}
}
System.out.println("升序后");
for(int g=0;g<counts;g++){//输出
System.out.println(temp[g]);
}
String t=input.next();//为了运行结束后查看结果,进行停留
}

}本回答被网友采纳
第3个回答  2011-06-30
public class Bubble {

// 冒泡排序函数1
public static void bubbleSort1(Comparable []data){

int position,scan;
Comparable temp;
for(position = data.length-1;position>=0;position--){
for(scan=0;scan<=position-1;scan++){
if(data[scan].compareTo(data[scan+1])<0){
temp = data[scan];
data[scan] = data[scan+1];
data[scan+1]=temp;
}
}
}
}
// 冒泡排序函数2
public static int[] bubbleSort2(int[] m){

int intLenth = m.length;
/*执行intLenth次*/
for (int i=0;i<intLenth;i++){
/*每执行一次,将最小的数排在后面*/
for (int j=0; j<intLenth-i-1;j++)
{
int a = m[j];
int b = m[j + 1];
if (a < b)
{
m[j] = b;
m[j + 1] = a;
}
}
}
return m;
}

public static void main(String []args){

// 冒泡排序1
Comparable []c={4,9,23,1,45,27,5,2};
bubbleSort1(c);
for(int i=0;i<c.length;i++)
System.out.println("冒泡排序1:"+c[i]);

System.out.println("*******************");

// 冒泡排序2
int []b = {4,9,23,1,45,27,5,2};
int []e = bubbleSort2(b);
for(int j=0;j<e.length;j++)
System.out.println("冒泡排序2:"+e[j]);
}
}
第4个回答  2011-07-02
public class Recursion_fibonacci
{
static int fib(int n)
{
if(n==0 || n==1)
return n;
else
return fib(n-2)+fib(n-1);
}
public static void main(String[] args)
{
int i;
for(i=0;i<20;i++)
System.out.print(" "+fib(i));
System.out.println();
}
}

求java冒泡排序法的原理
冒泡排序算法的原理如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没...

冒泡排序如何使用Java语言完成?
整个过程完成后最后一个元素就是最大值,完成第一轮比较,后边通过for循环依次完成后续比较。 运行代码如下: package day01; public class 冒泡 { public static void main(String[] args) { int []arr=new int[] {12,45,33,46,3}; System.out.println("排序之前的元素顺序:"); for(int i=0;i<arr...

JAVA中有哪几种常用的排序方法?
最主要的是冒泡排序、选择排序、插入排序以及快速排序1、冒泡排序 冒泡排序是一个比较简单的排序方法。在待排序的数列基本有序的情况下排序速度较快。若要排序的数有n个,则需要n-1轮排序,第j轮排序中,从第一个数开始,相邻两数比较,若不符合所要求的顺序,则交换两者的位置;直到第n+1-j个数...

java中的冒泡排序法的具体用法
这是一个Java程序,用于实现冒泡排序算法,以对数组中的元素进行排序。冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。首先,程序初始化了一个整型数组,包含一些整数{1,5,9,8,11,4,12,13}。接着,程序进入一个外层循环,控制数组...

Java冒泡排序的原理?
冒泡排序是所欲排序算法里最好理解的了。1、排序算法:A)比较相邻的元素。如果第一个比第二个大,就交换他们两个。B)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。C)针对所有的元素重复以上的步骤,除了最后一个。D)持续每次对越来越少...

java冒泡排序法代码
冒泡排序是比较经典的排序算法。代码如下:for(int i=1;i<arr.length;i++){for(int j=1;j<arr.length-i;j++){\/\/交换位置}

冒泡排序如何使用Java语言完成?
public class 冒泡 { public static void main(String[] args) { int []arr=new int[] {12,45,33,46,3};System.out.println("排序之前的元素顺序:");for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" ");} int t;for(int j=0;j<arr.length-1;j++){ for(int ...

java实现几种常见排序算法
1、冒泡排序 特点:效率低,实现简单 思想(从小到大排):每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有元素。这只是冒泡排序的一种,当然也可以从后往前排。2、选择排序 特点:效率低,容易实现。思想:每一趟从待排序序列选择一个最小的元素放到已排好...

java怎么让数组的数字从大到小排序?
将数字从大到小排序的方法:例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较,以次类推。示例代码如下: public class Test { public static void main(String[] args) { ...

java冒泡排序详细讲解
首先无论是哪种语言,各种排序的算法思想都是一样的。冒泡排序的算法思想是:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个...

相似回答