我写的一个对整型数组进行升序或降序的排序方法,但我不知道这算什么排序法大家看看:=============================================Java Code========================================/**
* 对32位整型数组中的元素快速按降序排列的方法
* @param array 用户定义的数组
* @param style 用户定义的排序方式
*/
public static void quickSort(int[] array,String style)
{
int temp=0;
for (int i = 0; i < array.length; i++)
{
for (int j = array.length-1; j > 0; j--)
{
if(style.toUpperCase().equals("DESC"))
{
if(array[j-1]<array[j])
{
temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;
}
}
else if(style.toUpperCase().equals("ASC"))
{
if(array[j-1]>array[j])
{
temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;
}
}
}
}
}================================================End===========================================
* 对32位整型数组中的元素快速按降序排列的方法
* @param array 用户定义的数组
* @param style 用户定义的排序方式
*/
public static void quickSort(int[] array,String style)
{
int temp=0;
for (int i = 0; i < array.length; i++)
{
for (int j = array.length-1; j > 0; j--)
{
if(style.toUpperCase().equals("DESC"))
{
if(array[j-1]<array[j])
{
temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;
}
}
else if(style.toUpperCase().equals("ASC"))
{
if(array[j-1]>array[j])
{
temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;
}
}
}
}
}================================================End===========================================
这句尽管没错但可以改进,你想啊,你每次都把最小的送到头部了,
那下一次循环中为什么还要和j[0]比较呢?j[0]必然已经是最小的了。
改成经典的会好很多:
for (int i = 0; i < ar.length; i++) {
for (int j = 0; j < ar.length - i - 1; j++) {
if (ar[j] < ar[j + 1]) {
int tmp = ar[j + 1];
ar[j + 1] = ar[j];
ar[j] = tmp;
}
}
rt.add(ar[ar.length - i - 1]);
}此外,你完全可以把style的判断放在函数入口处做,你这样每次if都判断,效率很低