java 数组升序排列

Python022

java 数组升序排列,第1张

 public static void main(String args[])

    { 

       try

       {

       int i, sum=0

       FileWriter f_out=new FileWriter("data.txt")

       System.out.println("请输入学生的个数")

       int n=new Scanner(System.in).nextInt()

       int s[]=new int [n]

       for( i=0i<ni++)

         {

          System.out.println("请输入第"+(i+1)+"个学生的成绩")

            s[i]=new Scanner(System.in).nextInt()

            if (s[i]<0||s[i]>100)

            {            

            System.out.println("输入错误,请重新输入")           

            s[i]=new Scanner(System.in).nextInt()

            }

            

            

         }

       Arrays.sort(s)

       for(int j=0j<nj++){

       f_out.write(s[j]+"\n")  

       }

f_out.close()

         FileReader f_in=new FileReader("data.txt")

         for(int c=f_in.read()c!=-1c=f_in.read())

         System.out.print((char)c+"  ")

       

         f_in.close()

       }    

        catch(IOException e)

        {

         System.err.println(e)

         e.printStackTrace()

        }      

    }

这样应该就好了。

对数组进行随机排序分为两种形式,一种是完全随机排序,一种是不完全随机排序,区别是完全随机对数组中原先任意的数据不会出现在原来的位置上,那么,一般来说,完全随机排序的需求会相对较大,我在此先给出完全随机方式,如果你需要不完全随机排序,可以再说:

举个例子:有一批数据,共n个,依次为a1,a2,a3,…,an-1,an,需要对它们进行完全随机排序。排序方法类似于直接选择,从左至右,即从ai+1~an中随机抽取一个数据与ai交换(1≤i≤n-1)。先排序第一个数据a1:从a2~an中随机抽出一个数据与a1交换;再排第二个数据a2:从a3~an中随机抽取一个数据与a2交换;再排第三个数据a3:从a4~an中随机抽取一个数据与a3交换;…;最后排第n-1个数据an-1:从an~an中随机抽取一个数据与an-1交换;第n个数据已不需要排序。这样,总共需要排n-1次。 从以上的算法分析中可以看出,每个待排序数据都会与其它数据交换位置,所以,每个数据都不会出现在原先的位置上,这是完全随机排序。

package ssspublic class F

{

public static void main(String[] args)

{

int ns[]={1,2,3,4,5,6}

int t=0

for(int i=0i<6i++)

{

for(int j=5j>0j--)

{

if(ns[j]>ns[j-1])

{

t=ns[j]

ns[j]=ns[j-1]

ns[j-1]=t

}

}

}

for(int i=0i<6i++)

{

System.out.println(ns[i])

}

}} 我用你的代码重新写一次,运行过,没什么问题吖, 所有的数字都按大到小排序,你可以对比对比我写这个代码,看你原本的代码哪里出错了