山西太原中信国际旅游:java中实现排序的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/03 14:06:08
public class Two3{

public static void main(String[]args)
{
int[]arrayOfInts={32,87,3,589,12,7076,2000,8,622,127};
int a;
for(int i=0;i<arrayOfInts.length-1;i++)
{
if(arrayOfInts[i]>arrayOfInts[i+1])
{a=arrayOfInts[i];
arrayOfInts[i+1]=arrayOfInts[i];
arrayOfInts[i]=a;}

}
for(int i=0;i<arrayOfInts.length-1;i++)
{
System.out.print(arrayOfInts[i]+" ");
}
}
}

//输出结果不正确.

设置两层循环

for(int i=0;i<arrayOfInts.length;i++)
{
for(int j=i+1;j<arrayOfInts.length;j++)
{
if(arrayOfInts[i]>arrayOfInts[j])
{
a=arrayOfInts[i];
arrayOfInts[i]=arrayOfInts[j];
arrayOfInts[j]=a;
}
}
}

还有一种方法就是用Arrays.sort()方法:

import java.util.Arrays;导入包

public class Two3{

public static void main(String[]args)
{
int[]arrayOfInts={32,87,3,589,12,7076,2000,8,622,127};

Arrays.sort(arrayOfInts);

for(int i=0;i<arrayOfInts.length-1;i++)
{
System.out.print(arrayOfInts[i]+" ");
}
}
}

JAVA排序标准的!
public void bubbleSort(int a[]) { //数组的冒泡排序
int n = a.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}

public void selectSort(int a[]) { //数组的选择排序
for (int n = a.length; n > 1; n--) {
int i = max(a, n);
int temp = a[i];
a[i] = a[n - 1];
a[n - 1] = temp;
}
}

public void insertSort(int a[]) { //数组的插入排序
int n = a.length;
for (int i = 1; i < n; i++) { //将a[i]插入a[0:i-1]
int t = a[i];
int j;
for (j = i - 1; j >= 0 && t < a[j]; j--) {
a[j + 1] = a[j];
}
a[j + 1] = t;
}
}

一楼的回答就OK了
太完美了!!

哈哈 C语言基础就不好吧
这种问题首先考虑到的就应该是循环嵌套啊。。。