java数组排序

Python015

java数组排序,第1张

//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置

//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,

//则将其与第一位交换,使最大数置于第一位

//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,

//则将其与第二位交换,使最大数置于第二位

//依次类推.........................................

//第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,

//则将其与第 i位交换,使最大数置于第 i位

public class SelectSort {

public static void main(String[] args) {

int[] a = {25,15,42,16,12,36}

int max = 0

int tmp = 0

for(int i=0i<a.lengthi++){

max = i//

/**查找第 i大的数,直到记下第 i大数的位置***/

for(int j=i+1j<a.lengthj++){

if(a[max]<a[j])

max = j//记下较大数位置,再次比较,直到最大

}

/***如果第 i大数的位置不在 i,则交换****/

if(i!=max){

tmp = a[i]

a[i] = a[max]

a[max] = tmp

}

}

for(int i=0i<a.lengthi++)

System.out.print(a[i]+" ")

}

}

//第一种

int[]a ={5,3,2,4,6,1,8,7,9}

Arrays.sort(a)

//冒泡排序

int[]a ={5,3,2,4,6,1,8,7,9}

int temp=0  

    for(int i=0i<a.length-1i++){  

        for(int j=0j<a.length-1-ij++){  

        if(a[j]>a[j+1]){  

            temp=a[j]  

            a[j]=a[j+1]  

            a[j+1]=temp  

        }  

        }  

    }

//选择排序

int[]args1 ={5,3,2,4,6,1,8,7,9}

for (int i=0i<args1.length-1 i++ ){   

            int min=i   

            for (int j=i+1j<args1.length j++ ){   

                  if (args1[min]>args1[j]){   

                       min=j   

                       }   

              }   

                  if (min!=i){  

                  int temp=args1[i]  

                  args1[i]=args1[min]  

                  args1[min]=temp          

              }  

        }

//插入排序

int[]args1 ={5,3,2,4,6,1,8,7,9}

for(int i=1i<args1.lengthi++){   

            for(int j=ij>0j--){   

                    if (args1[j]<args1[j-1]){   

                            int temp=args1[j-1]  

                            args1[j-1]=args1[j]  

                           args1[j]=temp          

                   }else break   

           }  

    }