Topic: 给一个数组从小到大排列的问题

  Print this page

1.给一个数组从小到大排列的问题 Copy to clipboard
Posted by: 8261669
Posted on: 2006-09-05 21:30

给定一人数组:int[]arrayOflnts={32,87,3,589,12,1076,2000,8,622,127};
请按从小到大的顺序排列,并打印出来……
这个代码怎么写啊,给个思路,我还没学对象,这是数组中的一道练习题……
谢谢……

2.Re:给一个数组从小到大排列的问题 [Re: 8261669] Copy to clipboard
Posted by: lisliefor
Posted on: 2006-09-05 22:11

这个是一个简单的排序问题!
数据结构中有一些排序的方法,冒泡排序、插入排序、选择排序,LZ可以研究一下,不过数据结构大部分是c的,把想法借过来应该不难!

3.Re:给一个数组从小到大排列的问题 [Re: 8261669] Copy to clipboard
Posted by: 8261669
Posted on: 2006-09-05 22:17

那代码麻烦写下……

4.Re:给一个数组从小到大排列的问题 [Re: 8261669] Copy to clipboard
Posted by: lwfllr
Posted on: 2006-09-06 00:56

for(int i=0;i<arrayOflnts.length();i++){
for(int j=i;j<arrayOflnts.length();j++){
if(arrayOflnts[j]>arrayOflnts[j+1]){
int temp=arrayOflnts[j];
arrayOflnts[j]=arrayOflnts[j+1];
arrayOflnts[j+1]=temp;
}
}
}
应该可以了吧?~~

5.Re:给一个数组从小到大排列的问题 [Re: 8261669] Copy to clipboard
Posted by: why
Posted on: 2006-09-06 11:45

check java.util.Arrays.sort(int[])

6.Re:给一个数组从小到大排列的问题 [Re: 8261669] Copy to clipboard
Posted by: fragking888
Posted on: 2006-09-07 17:50

给你一段快速排序法的代码,自己试试,快。

public class mySort {

int Parttion(int a[], int low, int high) {
    int x = a[low];

    while (low < high) {
      while (low < high && a[high] >= x)
        high--;
      a[low] = a[high];

      while (low < high && a[low] < x)
        low++;
      a[high] = a[low];
    }

    a[low] = x;
    return low;
  }
  
  public static void QuickSort(int a[], int len) {
    mySort mm = new mySort();
    mm.Qsort(a, 0, len - 1);
  }

  void Qsort(int a[], int low, int high) {
    if (low < high) {
      int k = Parttion(a, low, high);
      Qsort(a, low, k - 1);
      Qsort(a, k + 1, high);
    }
  }
  
}

7.Re:给一个数组从小到大排列的问题 [Re: 8261669] Copy to clipboard
Posted by: yzcj007
Posted on: 2006-09-08 09:04

class ArrayTest{

public static void main(String[] args){
int[] arrayOflnts={32,87,3,589,12,1076,2000,8,622,127};
java.util.Arrays.sort(arrayOflnts);
for(int i=0;i<arrayOflnts.length;i++)
System.out.println(arrayOflnts[i]);
}
}

8.Re:给一个数组从小到大排列的问题 [Re: 8261669] Copy to clipboard
Posted by: leange
Posted on: 2006-09-09 15:28

楼主认真去学一下数据结构比较好,这是基本的,无论什么考试都会涉及的!

9.Re:给一个数组从小到大排列的问题 [Re: 8261669] Copy to clipboard
Posted by: 8261669
Posted on: 2006-09-09 20:57

public class one{
public static void main(String args[]){
int[] arrayOflnts={32,87,3,589,12,1076,2000,8,622,127};
java.util.Arrays.sort(arrayOflnts);
for(int i=0;i<arrayOflnts.length;i++)
System.out.print(arrayOflnts[i]+" ");
}
}
这个方法简便些……
不过想问下
i<arrayOfnts.length是什么意思啊……
不理解……

10.Re:给一个数组从小到大排列的问题 [Re: 8261669] Copy to clipboard
Posted by: lisliefor
Posted on: 2006-09-11 10:52

arrayOfInts是int类型数组,上面已经声明,length是它的一个属性,表示它的长度,即元素个数。
i<arrayOfInts.length是控制for循环结束的条件。

11.Re:给一个数组从小到大排列的问题 [Re: 8261669] Copy to clipboard
Posted by: wwhui
Posted on: 2006-09-11 23:16

//给你一个最简单的,选择排序的完整程序,你参考一下。
import java.io.*;
public class sy1
{public static void main(String args[])
  {int a[]={32,87,3,589,12,1076,2000,8,622,127},n=10;
   px(a,n);
   System.out.println("排序后的情况:");
   for(int j=0;j<10;j++)
   System.out.print(" "+a[j]+" ");
    }
    
    
  static void px(int arr[],int n)
  {int temp,p;
   for(int i=0;i<n-1;i++)
   {p=i;
     for(int j=i+1;j<n;j++)
      if(arr[p]>arr[j])
       p=j;
      if(p!=i)
       {temp=arr[p];arr[p]=arr[i];arr[i]=temp;}
   }   
  }  
  
}


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923