int[] some=new int[]{20,70,35,46,32,47,39,45,21}
int len=some.length;
for(int i=1;i<len;i++){
int data=some[i];
int j=i;
for(;j>0;j--){
int the=data[j-1];
if(the>data){
data[j]=the;
}
else break;
}
some[j]=data;
}
int len=some.length;
for(int i=1;i<len;i++){
int data=some[i];
int j=i;
for(;j>0;j--){
int the=data[j-1];
if(the>data){
data[j]=the;
}
else break;
}
some[j]=data;
}
解决方案 »
- tomcat项目测试,web.xml中写servlet,浏览器访问不到,求大神解析
- Java 新手编译错误,请高手指点
- ObjectInputStream readObject 连续读对象的问题
- 不知道有没有影响?
- 进来解答问题,非高手勿进,关于gui和io流的问题
- '水仙花数'怎么求????
- 向数据库添加数据时,连接字符串中的问题
- ★★★哪位有正则表达式工具regexbuddy 3.03 full version?★★★
- 请教(关于布局)
- 我是JAVA的一位初学者请各位师兄师姐帮忙看看下面的代码为什么会提示出错?
- 编写isLike()方法,用以判断字符串是否匹配。
- JDK代码中关于ArrayList构造器中的一个问题。
int len=some.length;
for(int i=1;i<len;i++){
int data=some[i];
int j=i;
for(;j>0;j--){
int the=data[j-1];
if(the>data){
data[j]=the;
}
else break;
}
some[j]=data;
}
int the=data[j-1];
这两个语句不理解。
上面生命data变量是整型数据。
下面使用的时候,data变成了整型数组。
int[] some=new int[]{20,70,35,46,32,47,39,45,21}
int len=some.length;
for(int i=1;i<len;i++){
int data=some[i];
int j=i;
for(;j>0;j--){
int the=data[j-1];
if(the>data){
data[j]=the;
}else{
break;
}
}
some[j]=data;
}
temp=data1;
data1=data2;
data2=temp;
冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数。而你的算法,最坏情况下需要n*n次排序才能完成。
public class BubbleSort {
public void bubble(int[] source){
if(source == null || source.length == 0){
return;
}
int len = source.length;
for (int i = 1; i < len; i++) {
int data = source[i];
int j = i;
for (; j > 0; j--) {
int the = source[j - 1];
if (the > data) {
source[j] = the;
} else
break;
}
source[j] = data;
}
}
public static void main(String[] args) {
int[] some = new int[]{20,70,35,46,32,47,39,45,21};
new BubbleSort().bubble(some);
for (int i = 0; i < some.length; i++) {
System.err.println(some[i]);
}
}}