码迷,mamicode.com
首页 > 编程语言 > 详细

三大排序

时间:2017-06-11 21:16:48      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:i++   code   alt   sys   位置   数据   元素   break   public   

一:选择排序

原理:将数组中的每个元素与第一个元素比较如果这个元素小于第一个元素则交换这两个元素

循环第一条规则,找出最小的元素放于第一个位置,经过n-1轮比较完成排序

技术分享
public class Jiaohuan {
    public static void main(String [] args){
        int [] num={5,2,6,9,8,7,1,3,4};
        for(int i=1;i<num.length;i++){
            for(int j=0;j<i;j++){
                if(num[i]<num[j]){
                    int temp=num[i];
                    num[i]=num[j];
                    num[j]=temp;
                }
            }
        }
        for(int i=0;i<num.length;i++){
            System.out.print(num[i]+"  ");
        }

    }

}
技术分享

二:冒泡排序

原理:逐一比较数组中相邻的两个元素,如果后面的元素小于前面的元素,就交换相互顺序

经过每一轮的比较,一定有一个最大的排在最后面的位置,每次比较剩下的元素经过n-1次比较可以实现排序

简单而言,比较交换相邻的元素,每次最大的漂移到最后

技术分享
public class Maopao {
    public  static  void main(String [] args){
        int [] num={5,2,6,3,1,4,7,9,8};
        for(int i=0;i<num.length;i++){
            for(int j=0;j<num.length-1-i;j++){
                if(num[j]>num[j+1]){
                    int temp=num[j+1];
                    num[j+1]=num[j];
                    num[j]=temp;
                }
            }
        }
        for(int i=0;i<num.length;i++){
            System.out.print(num[i]+"  ");
        }
    }

}
技术分享

三:插入排序

原理:将数组分为两部分,将后部分的第一张逐一与前部分每一张比较,如果当前元素小,就移动被比较元素,找到合理的位置插入

技术分享
public class Charu {  
    public static void main(String[] args) {
        int[] arr = { 60, 70, 80, 90, 100 };// 旧数组
        /* 长度加一的新数组 */
        int[] newArr = new int[arr.length + 1];
        /* 将旧的数组中的数据复制到新的数组中 */
        for (int i = 0; i < arr.length; i++) {
            newArr[i] = arr[i];    
        }
        int num = 75;
        /* 找到要插入的数据的位置 */
        int index = 0;
        for (int j = 0; j < newArr.length; j++) {
            if (num < newArr[j]) {
                index = j;
                break;
            }
        }
        /* 移动数组中的元素 */
        for (int k = newArr.length - 1; k >= index; k--) {
            newArr[k] = newArr[k - 1];
        }
        /* 将数字插入到合理的位置 */
        newArr[index] = num;
        /*打印数组中的元素*/
        System.out.print("插入数字后数组的内容:");
        for(int t=0;t<newArr.length;t++){
            System.out.print(newArr[t]+"   ");
        }
    }
}
技术分享

 

三大排序

标签:i++   code   alt   sys   位置   数据   元素   break   public   

原文地址:http://www.cnblogs.com/yinhua7896/p/6986165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!