当前位置:首页 » 编程语言 » 数组排序java冒泡排序

数组排序java冒泡排序

发布时间: 2022-04-20 17:10:56

1. java冒泡排序

packageTest;

importjava.util.Arrays;

publicclassDemo1{
publicstaticvoidmain(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));
}

publicstaticvoidsortArr(int[]a,inti,intj){
if(j<i){
sortOne(a,i,j);
}else{
sortOne(a,--i,0);
}
}

publicstaticvoidsortOne(int[]a,inti,intj){
if(i==0)return;
if(a[j+1]<a[j]){
inttemp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
sortArr(a,i,++j);
}

publicstaticvoidsort(int[]a)
{
inttemp=0;
for(inti=a.length-1;i>0;--i)
{
for(intj=0;j<i;++j)
{
if(a[j+1]<a[j])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
}

上面代码是从小到大排列

packageTest;

importjava.util.Arrays;

publicclassDemo1{
publicstaticvoidmain(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));

}

publicstaticvoidsortArr(Object[]a,inti,intj){
if(j<i){
sortOne(a,i,j);
}else{
sortOne(a,--i,0);
}
}

publicstaticvoidsortOne(Object[]a,inti,intj){
if(i==0)return;
if(a[j+1]instanceofInteger){
if(Integer.valueOf(""+a[j+1])<Integer.valueOf(""+a[j])){
Objecttemp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}elseif(a[j+1]instanceofCharacter){
if(a[j+1].toString().charAt(0)<a[j].toString().charAt(0)){
Objecttemp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
sortArr(a,i,++j);
}

// publicstaticvoidsort(int[]a)
// {
// inttemp=0;
// for(inti=a.length-1;i>0;--i)
// {
// for(intj=0;j<i;++j)
// {
// if(a[j+1]<a[j])
// {
// temp=a[j];
// a[j]=a[j+1];
// a[j+1]=temp;
// }
// }
// }
// }
}

2. java数组冒泡排序问题

你当前的数组长度为5
冒泡排序的做法是:
1、取下标为0的元素分别去和下标为1、2、3、4的元素进行比较,值最大的元素或者是值最小的元素与下标为0的元素互换位置;
2、取下标为1的元素分别去和下标为0、2、3、4的元素进行比较,值最大的元素或者是值最小的元素与下标为1的元素互换位置;
3、取下标为2的元素分别去和下标为0、1、3、4的元素进行比较,值最大的元素或者是值最小的元素与下标为2的元素互换位置;
以此类推,直到数组的最后一个元素也分别和其他元素进行过比较之后终止循环。
程序中的 temp 是帮助程序将数组中的两个元素互换位置的。

另:你这段程序可以简化为
public class Demo2 { public static void main(String[] args) { int arr[]={1,10,3,5,4};
Arrays.sort(arr);
for (int i : arr) {
System.out.println(i);
}
}

楼主可以着重看看Arrays.sort()这个方法,这是java.util包下的排序方法。

3. java数组如何排序

如果是升序可以使用 Arrays.sort(数组名)(注意:要使用这个方法必须导入java.util.Arrays包)或者使用冒泡排序,如果是降序只能自己写,推荐使用冒泡排序

4. java定义一个整型数组将数组中的元素用冒泡排序法升序排序

请看:

/*
*冒泡排序
*/
publicclassBubbleSort{
publicstaticvoidmain(String[]args){
int[]arr={6,3,8,2,9,1};
System.out.println("排序前数组为:");
for(intnum:arr){
System.out.print(num+"");
}
for(inti=0;i<arr.length-1;i++){//外层循环控制排序趟数
for(intj=0;j<arr.length-1-i;j++){//内层循环控制每一趟排序多少次
if(arr[j]>arr[j+1]){
inttemp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println();
System.out.println("排序后的数组为:");
for(intnum:arr){
System.out.print(num+"");
}
}
}

5. java冒泡排序详细讲解

依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。

for(int
j=0;j<=len-i-1;j++),冒泡排序比较相邻的值,也就是a[j]和a[j+1]相比较
所以这段代码从a[0]开始与后面的a[1]比较,如果a[1]小于
a[0]就换。不小于j++,a[1]和[a2]比较,以此类推,直到比到a[len-i-1]时,也就比到了最后一个数组了。上层循环就是控制数组比较的长度。

6. java冒泡排序法代码

冒泡排序是比较经典的排序算法。代码如下:

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

for(int j=1;j<arr.length-i;j++){

//交换位置

}

拓展资料:

原理:比较两个相邻的元素,将值大的元素交换至右端。

思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。

第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;

第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;

依次类推,每一趟比较次数-1;

……

举例说明:要排序数组:int[]arr={6,3,8,2,9,1};

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

for(int j=1;j<arr.length-i;j++){

//交换位置

}

7. java语言中怎样用冒泡法对数组元素的排序

public class Practice {
public void sortArry(){
int arr[]={2,1,5,8,21,12};
System.out.println("冒泡排序前的结果是:");
for(int i=0;i<arr.length;i++){
System.out.print(" "+arr[i]);
}
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println("冒泡排序后的结果是:");
for(int i=0;i<arr.length;i++){
System.out.print(" "+arr[i]);
}
}
public static void main(String args[]){
Practice p=new Practice();
p.sortArry();
}
}
你看看还有啥问题就问,抱歉赶时间,我没有加注释哦,其实我感觉你把冒泡排序的思想理解了就好了,每次从数组中选择出一个最大的(也可以是最小的),放到最后,每次都找最大的,然后找n-1次,n是数组长度,你看看。

8. 冒泡排序算法,java

原理:比较两个相邻的元素,将值大的元素交换至右端。
思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第
1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大
数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至
全部排序完成。
publicclass BubbleSort {
publicstaticvoid main(String[] args) { int[] arr={12,45,23,67,56,34,99,123}; System.out.println("排序前数组为:");
for(int n:arr){
System.out.print(n+"");
}
for(int i=0;i<arr.length-1;i++){//外层循环控制排序趟数
for(int j=0;j<arr.length-1-i;j++){//内层循环控制每一趟排序多少次 if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp;
}
}

9. java 冒泡排序怎么写

int[]
num=new
int[]{1,6,5,8,9,4,7};
int
temp
=
0;//用于两个数进行交换的中间变量
for(int
i=0;i<num.length;i++){
//外层循环开始
控制比较的开始位置
和比较的次数
for(int
j=num.length-1;j>i;j--){
//内层循环开始
对相邻的两个数进行比较
若后者比前者大则交换位置
if(num[j]>num[j-1]){

temp=num[j-1];

num[j-1]=num[j];

num[j]=temp;

}
}
}

热点内容
二级程序编译答案 发布:2024-05-03 18:41:35 浏览:653
领动自动精英版是哪个配置 发布:2024-05-03 18:37:30 浏览:150
java编译器中cd什么意思 发布:2024-05-03 18:36:00 浏览:389
传奇服务器如何刷钱 发布:2024-05-03 18:36:00 浏览:977
安卓版twitter怎么注册 发布:2024-05-03 18:28:05 浏览:893
Python逻辑优先级 发布:2024-05-03 18:26:14 浏览:267
linux查看svn密码 发布:2024-05-03 18:12:47 浏览:804
地铁逃生怎么进入游戏安卓 发布:2024-05-03 17:49:35 浏览:992
aws云存储 发布:2024-05-03 17:48:50 浏览:955
安卓微信王者号怎么转成苹果 发布:2024-05-03 17:44:38 浏览:745