【Java】五种常见排序之-----------冒泡排序

来源:互联网 发布:数控折弯机怎么编程 编辑:程序博客网 时间:2024/05/21 07:09

冒泡排序:

  • 原理: 将关键字较小的值不断地上浮,将关键字值较大的不断下沉;
  • 时间复杂度:O(n^2)
  • 空间复杂度:最优(即已经排好序)为0,平均空间复杂度为O(1);
  • 核心代码:

for(int i=0;i<n;i++){

for(int j=i;j<n;j++){

if(num[i]>num[j]){//数值较大的数进行交换下沉

int temp;

temp=num[i];

num[i]=num[j];

num[j]=temp;

}

}

}


【Java实现完整代码】


package paixu;

/**

 * @author xpengfei

 */

import java.util.Scanner;

/*

 * 效率最低的冒泡排序

 * 说明冒泡排序的时间复杂度符合O(n^2)。

 * 

 * 时间复杂度,最优与最差都需要[n*(n-1) ] / 2次比较,所以时间复杂度为O(n^2).

 * 空间复杂度,最优即已排好序,空间复杂度为0;平均空间复杂度为O(1)。

 */

public class sortOne {

Scanner input=new Scanner(System.in);

private int[]num;//存放随机数数组

private int n;//待输入的数组规模n

public sortOne(){//构造函数,初始化数组;

System.out.println("请输入数组大小N的值:");

n=input.nextInt();

num=new int[n];

System.out.println("随机生成的数组如下:");

for(int i=0;i<n;i++){

num[i]=(int)(Math.random()*1000);

System.out.println(num[i]);

}

}

public void sort(){//冒泡排序核心算法

for(int i=0;i<n;i++){

for(int j=i;j<n;j++){

if(num[i]>num[j]){//数值较大的数进行交换下沉

int temp;

temp=num[i];

num[i]=num[j];

num[j]=temp;

}

}

}

}

public void displayResult(){//该函数将排好序的数组进行有序输出

System.out.println("数组排序后的结果为:");

for(int i=0;i<n;i++){

System.out.println(num[i]);

}

}

public static void main(String []args){

sortOne sone=new sortOne();

sone.sort();

sone.displayResult();

}

}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 鼻子痒流鼻涕流眼泪怎么办 天冷鼻子流鼻涕怎么办 感冒流水样鼻涕怎么办 一直有清水鼻涕怎么办 孩子总打喷嚏鼻塞怎么办 4岁儿童流鼻涕怎么办 孕妇清鼻涕不停怎么办 感冒流鼻水怎么办速效办法 一岁宝宝流清涕怎么办 咳嗽喉咙痛有痰怎么办 冻感冒了流鼻涕怎么办 吸烟经常嗓子疼怎么办 擦鼻涕擦破了怎么办 感冒鼻水流不停怎么办 流鼻涕鼻子都擦红了怎么办 鼻子不停的流水怎么办 擦鼻涕耳朵疼怎么办 鼻涕跟水一样怎么办 鼻涕水多打喷嚏怎么办 买来的鼻涕泥是水怎么办? 鼻炎鼻涕跟水怎么办 出门忘记带钥匙怎么办 总留鼻涕水怎么办 流像水一样的鼻涕怎么办 出门忘记带洗面奶怎么办 一侧鼻子流清水怎么办 慢性肠胃炎犯了怎么办 儿子拉肚肚子疼怎么办 皮肤太容易过敏怎么办 过敏脸一直不好怎么办 脸上突然过敏怎么办急救 脸过敏发红疼怎么办 脸上突然过敏了怎么办 脸过敏总反复怎么办 用蜂蜜洗脸过敏怎么办 脸上涂蜂蜜过敏怎么办 孕晚期脸过敏怎么办 吃芒果脸过敏怎么办 脸上老反复过敏怎么办 用什么都过敏怎么办 脸上起过敏湿疹怎么办