「java对数组冒泡排序」java使用冒泡排序对数组排序
本篇文章给大家谈谈java对数组冒泡排序,以及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;iarr.length;i++)
{
System.out.print(arr[i]+" ");
}
int t;
for(int j=0;jarr.length-1;j++)
{
for(int x=0;xarr.length-1;x++)
{
if(arr[x]arr[x+1])
{
t=arr[x];
arr[x]=arr[x+1];
arr[x+1]=t;
}
}
}
System.out.println();
System.out.println("排序之后的元素顺序:");
for(int k=0;karr.length;k++)
{
System.out.print(arr[k]+" ");
}
}
}
运行结果截图:
扩展资料:
(1)冒泡排序每一轮把一个最大的元素放在数组的最后
(2)如果想要实现倒叙比较输出可以把代码判断大小的部分改为下边代码即可。
if(arr[x]arr[x+1])
{
t=arr[x];
arr[x]=arr[x+1];
arr[x+1]=t;
}
(3)使用知识点:数组length的使用,数组的定义,for循环的嵌套。
JAVA冒泡排序
package Test;
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
int[] a = {2,1,3,9,7,10,8,11,17,6};
//System.out.println(Arrays.toString(a));
sortArr(a,a.length - 1,0);
System.out.println(Arrays.toString(a));
sort(a);
System.out.println(Arrays.toString(a));
}
public static void sortArr(int[] a,int i,int j){
if(ji){
sortOne(a,i,j);
}else{
sortOne(a,--i,0);
}
}
public static void sortOne (int[] a,int i,int j){
if(i==0)return;
if(a[j + 1] a[j]){
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
sortArr(a,i,++j);
}
public static void sort(int[] a)
{
int temp = 0;
for (int i = a.length - 1; i 0; --i)
{
for (int j = 0; j i; ++j)
{
if (a[j + 1] a[j])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
}
上面代码是从小到大排列
package Test;
import java.util.Arrays;
public class Demo1 {
public static void main(String[] args) {
Object[] a = {2,1,3,9,7,10,8,11,17,6};
sortArr(a,a.length - 1,0);
System.out.println(Arrays.toString(a));
Object[] b = {'a','m','s','b','h','e'};
sortArr(b,b.length - 1,0);
System.out.println(Arrays.toString(b));
}
public static void sortArr(Object[] a,int i,int j){
if(ji){
sortOne(a,i,j);
}else{
sortOne(a,--i,0);
}
}
public static void sortOne (Object[] a,int i,int j){
if(i==0)return;
if(a[j + 1] instanceof Integer){
if(Integer.valueOf(""+a[j + 1]) Integer.valueOf(""+ a[j])){
Object temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}else if(a[j + 1] instanceof Character){
if(a[j + 1].toString().charAt(0) a[j].toString().charAt(0)){
Object temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
sortArr(a,i,++j);
}
// public static void sort(int[] a)
// {
// int temp = 0;
// for (int i = a.length - 1; i 0; --i)
// {
// for (int j = 0; j i; ++j)
// {
// if (a[j + 1] a[j])
// {
// temp = a[j];
// a[j] = a[j + 1];
// a[j + 1] = temp;
// }
// }
// }
// }
}
java 冒泡排序怎么写?
方法一: package basic.javastu; public class NumberTest {
/** * 实现冒泡程序1 */ public static void main(String[] args) { // TODO Auto-generated method stub
int[] numb=new int[]{3,42,57,1,32,24};
int len=numb.length;
int i,j;
int temp;
System.out.println("排序前的数组各个值:");
for(i=0;ilen;i++)
{
System.out.print(numb[i]+"\t");
}
System.out.println("\n");
for(i=1;i=len;i++)
{
for(j=len-1;j=1;j--)
{
if(numb[j]numb[j-1])
{
temp=numb[j];
numb[j]=numb[j-1];
numb[j-1]=temp;
}
}
}
System.out.println("排序后的数组各个值:");
for(i=0;ilen;i++)
{
System.out.print(numb[i]+"\t");
}
}
}
方法二: package basic.javastu; public class NumberTest2 {
/** * 实现冒泡程序2 */ public static void main(String[] args) { // TODO Auto-generated method stub
int[] numb=new int[]{3,42,57,1,32,24};
int leng=numb.length;
System.out.println("排序前的数组各个值:");
for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
}
System.out.println("\n");
swap(numb);
System.out.println("数组排序后:"); for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
} }
private static int[] swap(int[] numb) { int n2[]=numb; int len=n2.length; int i,j; int temp; for(i=1;i=len;i++)
{
for(j=len-1;j=1;j--)
{
if(n2[j]n2[j-1])
{
temp=n2[j];
n2[j]=n2[j-1];
n2[j-1]=temp;
}
}
} return n2; } }
方法三: package basic.javastu; public class NumberTest3 {
/** * 实现冒泡程序2 */ public static void main(String[] args) { // TODO Auto-generated method stub
int[] numb=new int[]{3,42,57,1,32,24};
int leng=numb.length;
System.out.println("排序前的数组各个值:");
for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
}
System.out.println("\n");
swap(numb);
System.out.println("数组排序后:"); for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
} }
private static void swap(int[] numb) { int len=numb.length; int i,j; int temp; for(i=1;i=len;i++)
{
for(j=len-1;j=1;j--)
{
if(numb[j]numb[j-1])
{
temp=numb[j];
numb[j]=numb[j-1];
numb[j-1]=temp;
}
}
} } }
java冒泡排序法代码
冒泡排序是比较经典的排序算法。代码如下:
for(int i=1;iarr.length;i++){
for(int j=1;jarr.length-i;j++){
//交换位置
}
拓展资料:
原理:比较两个相邻的元素,将值大的元素交换至右端。
思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。
第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;
第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;
依次类推,每一趟比较次数-1;
……
举例说明:要排序数组:int[] arr={6,3,8,2,9,1};
for(int i=1;iarr.length;i++){
for(int j=1;jarr.length-i;j++){
//交换位置
}
参考资料:冒泡排序原理
关于java对数组冒泡排序和java使用冒泡排序对数组排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-24,除非注明,否则均为
原创文章,转载请注明出处。