java常考的几个排序

来源:互联网 发布:电脑上测试 php网页 编辑:程序博客网 时间:2024/05/17 09:14

1.写一个冒泡排序的程序。

 

 

        public class Sort
{
        
public static void main(String[] args)
         {
               
int[] array = {2,3,4,1,43,432,1,344,234,2,3,43,32,434,3432,43,2432,432,4,43};
               
int num = 0;
               
/*
                   冒泡排续
               
*/
               
for(int i = 0;i < array.length;i++)
                {
                   
/*
                        每下底一个元素,则调换的次数减一。
                        注意:j<array.length-i-1,不减一则数组下标越界。
                   
*/
                   
for(int j = 0;j<array.length-i-1;j++)
                    {
                        
int temp = 0;
                        
/*
                            两两比较若前面的大于后面的则进行调换。
                        
*/
                        
if(array[j] > array[j+1])
                         {
                              temp
= array[j];
                              array[j]
= array[j+1];
                              array[j
+1] = temp;
                          }
                     }
                  }
                
/*
                   输出排序后的数组
                
*/
                System.out.println(
"****************已排序的数组********");
               
for(int i = 0;i < array.length;i++)
                {
                    System.out.print(array[i]
+"    ");
                    num
++;
                   
if(num == 5)//每行输出5个。
                    {
                        System.out.println();
                        num
= 0;
                    }
                 }
          }
}

 

输入n个数字,以逗号,分开; 然后可选择升或者降序排序;

 

2.import java.util.StringTokenizer;
import java.util.Arrays;
public class Test
{
       
public static void main(String[] args)
        {
            String s
= "2,654,24,6554,3234,3544,666,354,5435,11";
            StringTokenizer  tok 
= new StringTokenizer(s,",");
           
//返回有多少个被分割元素
            int count = tok.countTokens();
           
int[] result = new int[count];
           
//把分割得到的数字存到数组中去。
            for(int i = 0;i<count;i++)
            {
                String temp
= (String)tok.nextElement();
                result[i]
= Integer.parseInt(temp);
            }
           
//排序
            Arrays.sort(result);
           
for(int i = 0;i<result.length;i++)
            {
               
if(i==0)
                {
                    System.out.print(result[i]);
                   
continue;//第一个元素的前面不打印“,”
                }
                System.out.print(
","+result[i]);
            }
            System.out.println();
//输出:2,11,24,354,654,666,3234,3544,5435,6554
      

 

 

原创粉丝点击