冒泡排序

package A;

import java.text.SimpleDateFormat;
import java.util.Date;

public class JosePhu {
public static void main(String[] args) {
int[] a=new int[80000];
Date date=new Date();
//格式化,格式化之后会得到一个String
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=simpleDateFormat.format(date);
System.out.println("start:"+time);
for (int i = 0; i < 80000; i++) {
a[i]=(int)(Math.random()*80000);//[0,80000)
}
Date date1=new Date();
String time1=simpleDateFormat.format(date1);
System.out.println("middle:"+time);//看来这个随机数是比较快的
Method method=new Method();
method.bubbleSort(a);
Date date2=new Date();
String time2=simpleDateFormat.format(date2);
System.out.println("end:"+time2);
}
}

package A;

import java.util.Arrays;

public class Method {
public void bubbleSort(int[] a){//冒泡排序的思想就是这样
//int a[]={3,9,-1,10,-2};
//int a[]={1,2,3,4,5};
int temp=0;
/*for (int i = 0; i < a.length - 1; i++) {//将第一大的数排到最后
if (a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
System.out.println("排序:"+ Arrays.toString(a));
for (int i = 0; i < a.length - 1-1; i++) {
if (a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
System.out.println("排序:"+ Arrays.toString(a));
for (int i = 0; i < a.length - 1-2; i++) {
if (a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
System.out.println("排序:"+ Arrays.toString(a));
for (int i = 0; i < a.length - 1-3; i++) {
if (a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
System.out.println("排序:"+ Arrays.toString(a));*/
//重点在这里
for (int i = 0; i < a.length-1; i++) {//需要冒泡的次数
for (int j = 0; j < a.length-1-i; j++) {//-i是因为你已经排了这个数(即最后的那个),所以这个数就不用管啦
if (a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//System.out.println("排序:"+ Arrays.toString(a));
}
}

posted @ 2021-07-29 10:43  朱在春  阅读(36)  评论(0编辑  收藏  举报