浅析排序方法

Posted dark-code

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析排序方法相关的知识,希望对你有一定的参考价值。

源码如下

 1 /*Function:sortMethod
 2  *Written By: lifurong
 3  *Include 1Main_Class&2Part_Class
 4  *Error:input 2->runtime error
 5  */
 6 
 7 import java.util.Scanner;
 8 
 9 public class SortMethod{
10     public static void main(String[] args) {
11         final int NUMBER_OF_ELEMENT=5;
12         @SuppressWarnings("resource")
13         Scanner input=new Scanner(System.in);
14         double[] numbers=new double[NUMBER_OF_ELEMENT];
15         System.out.println("Please enter the array:");
16         for(int i=0;i<NUMBER_OF_ELEMENT;i++){
17             numbers[i]=input.nextDouble();
18         }
19         SortFunction.operaSort(numbers);//这里更改具体方法
20         System.out.println("positiveOutput input 1");
21         System.out.println("negitiveOutput input 2");
22         int FormOf_Sort=input.nextInt();
23         if(FormOf_Sort==1)
24             FormOfSort.positiveOutput(numbers,NUMBER_OF_ELEMENT);
25         if(FormOf_Sort==2)
26             FormOfSort.negativeOutput(numbers,NUMBER_OF_ELEMENT);
27         }
28 }
29 
30 //静态类排序方法
31 class SortFunction{
32     public static void operaSort(double[] list){//from small to high
33         double temp;
34         for(int i=0;i<list.length-1;i++){
35             for(int j=0;j<list.length-1-i;j++){
36                 if(list[j]>list[j+1]){
37                     temp=list[j];list[j]=list[j+1];list[j+1]=temp;
38                 }
39             }
40         }
41     }
42     
43     public static void selectSort(double[] list){
44         double temp;
45         for(int i=0;i<list.length-1;i++){
46             int currentMaxIndex=i;//假设最大值的下标就是i
47             for(int j=i+1;j<list.length;j++){//把i以后的所有值与i值比较,得出当前i这个位置的最大最小值
48                 if(list[j]>list[currentMaxIndex])
49                     currentMaxIndex=j;
50             }
51             temp=list[currentMaxIndex];
52             list[currentMaxIndex]=list[i];
53             list[i]=temp;
54         }
55     }
56 
57     public static void insertSort(double[] list){
58         for(int i=1;i<list.length;i++){
59             double currentElement=list[i];
60             int k;
61             for(k=i-1;k>=0&&list[k]>currentElement;k--){
62                 list[k+1]=list[k];
63             }
64             list[k+1]=currentElement;
65         }
66     }
67 }
68 
69 //静态类
70 class FormOfSort{
71     
72     public static void positiveOutput(double[] list,int n){
73         for(int i=0;i<n;i++){
74             System.out.print(list[i]+" ");
75         }
76     }
77     
78     public static void negativeOutput(double[] list,int n){
79         for(int i=n;i>=0;i--){
80             System.out.print(list[i-1]+" ");
81         }
82     }
83 }

 

以上是关于浅析排序方法的主要内容,如果未能解决你的问题,请参考以下文章

八大排序算法浅析

数组排序方法——reverse() 和 sort() !! sort( ) 参数浅析

线程浅析

浅析高速排序

万字长文浅析Java集合中的排序算法

浅析 Python 模块