1.直接排序算法:从第二个元素开始迭代,和前面的元素比较大小,如果发现大于自己的,先用一个临时变量保存好自己,然后从该位置开始到自己位置的元素往后移一个位置。再把自己放在该位置。
代码1.
public static void main(String[] args) {
int[] a=new int[10];
System.out.println("排序之前:");
for(int i=0;i<a.length;i++){
// double random=Math.random()*10;
//double d=Math.floor(random);//Math.round(random);
a[i]=(int)Math.floor(Math.random()*10) ;
System.out.println(a[i]);
}
int temp =0;
for(int i=0;i<a.length;i++){
for(int j=0;j<i;j++){
if(a[j]>a[i]){
temp=a[i];
for(int k=i;k>j;k--){
a[k]=a[k-1];
}
a[j]=temp;
}
}
}
System.out.println("最后直接排序以后:");
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
代码2.
public static void main(String[] args) {
Integer[] a=new Integer[10];
int temp=0;
for(int i=0;i<a.length;i++){
a[i]=new Integer(new Long(Math.round(Math.random()*100)).intValue());
}
System.out.println("排序之前:");
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
System.out.println("直接排序之后:");
for(int i=0;i<a.length;i++){
for(int j=0;j<i;j++){
if(a[j].intValue()>a[i].intValue()){
temp=a[i].intValue();
for(int k=i;k>j;k--){
a[k]=a[k-1];
}
a[j]=new Integer(temp);
}
}
}
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
总结:使用java的Integer类,Long等对象比较大小有点繁琐,因为操作的都是对象,所以不能方便地直接使用比较运算符直接比较大小,而使用其他方法。例如两个Integer对象在数字上比较大小要用compareTo(Integer int)方法。