Java的数组排序

对数组进行排序 使用到的排序算法有:

1 选择排序   2 冒泡排序   3 插入排序    4 JavaAPI提高排序算法

选择排序的原理:

     1 将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交换这两个元素
     2 循环第1条规则,找出最小元素,放于第1个位置
     3 经过n-1轮比较完成排序

冒泡排序原理:
      将相邻的元素进行比较,小的放在前面

插入排序原理:
      将数组分为两部分, 将后部分的第一个逐一与前部分每一个元素比较,在合理位置插入
      插入排序算法效率要高于选择排序和冒泡排序

代码如下:

import java.util.Arrays;

/**
 * 该类是用于对数组进行排序
 * 使用到的排序算法有:1 选择排序   2 冒泡排序  
 * 3 插入排序     4 JavaAPI提高排序算法
 * @author scywxx
 *
 */
public class ArraySort {
    
    public static void main(String[] args) {
        int[] array = {8,3,2,7,1};
        //array = selectionSort(array);//调用选择排序
        //array = bubbleSort(array);//调用冒泡排序
         // array = insertSort(array);//调用插入排序
          Arrays.sort(array);//调用javaAPI排序
        System.out.println(Arrays.toString(array));//输出选择排序的结
//使用JavaAPI提高排序算法
        
        
    }
    /**
     * 冒泡排序原理:
     *   将相邻的元素进行比较,小的放在前面
     * @param array
     * @return
     */
    public static int[] bubbleSort(int[] array) {
        for(int i = 0; i < array.length - 1; i++)//总共进行

array.length-1轮
        {
            for(int j = 0;j< array.length-i-1; j++)
            {
                if(array[j] > array [j+1])//比较相邻的元素之

间的大小
                {
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
        return array;
    }
    /**
     * 选择排序原理:
     *  1 将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交

换这两个元素
     *  2 循环第1条规则,找出最小元素,放于第1个位置
     *  3 经过n-1轮比较完成排序
     * @param array
     * @return
     */
    public static int[] selectionSort(int[] array) {
        
        for(int i = 0; i < array.length-1;i++)//总共进行array.length

-1轮
        {
            for(int j = i+1;j<array.length;j++)
            {
                if(array[j]<array[i])//数组中元素小于第一个元

素
                {
                    int temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
        return array;
    }
    /**
     * 插入排序原理:
     * 将数组分为两部分, 将后部分的第一个逐一与前部分每一个元素比较,在合

理位置插入
     * 插入排序算法效率要高于选择排序和冒泡排序
     * @param array
     * @return
     */
    public static int[] insertSort(int[] array){
        int t ,j;
        for(int i = 1;i < array.length ;i++)//第一个数已经排好序  后

面的部分取第一个
        {
            t=array[i];
            for( j = i-1;j > 0; j--)//将后部分的第一个逐一与前部

分比较
            {
                if(t < array[j])
                {
                    array[j+1] = array[j];//该数后移
                }
                else
                {
                    break;//退出
                }
                
            }
            array[j+1] = t;
        }
        r

 

posted @ 2017-04-06 17:50  scywxx  阅读(458)  评论(0)    收藏  举报