冒泡排序、选择排序、插入排序

一、冒泡排序

把第一个元素与第二个元素比较,如果第一个比第二个大,则交换他们的位置。接着继续比较第二个与第三个元素,如果第二个比第三个大,则交换他们的位置….

我们对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样一趟比较交换下来之后,排在最右的元素就会是最大的数。

除去最右的元素,我们对剩余的元素做同样的工作,如此重复下去,直到排序完成

 

package org.junit;

 

public class PaiXu {

  

    /**

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

  

        int[] a={10,25,96,2,15,4,45,16,98};

        paixu(a);

          

         

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

                 System.out.println(a[i]);

         }

          

    }

    public static void paixu(int[]a){

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

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

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

                    int jiaohuan=a[j];

                    a[j]=a[j+1];

                    a[j+1]=jiaohuan;

                      

                }

            }

        }

          

    }

}

1、从数组第2个元素开始抽取元素。

2、把它与左边第一个元素比较,如果左边第一个元素比它大,则继续与左边第二个元素比较下去,直到遇到不比它大的元素,然后插到这个元素的右边。

3、继续选取第3,4,….n个元素,重复步骤 2 ,选择适当的位置插入。

首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。这种方法我们称之为选择排序

 

package org.junit;

 

public class PaiXu2 {

 

    public static void main(String[] args) {

        // TODO Auto-generated method stub

 

         

        int []a={12,45,46,5,15,32,4};

        xuanzhe(a);

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

            System.out.println(a[i]);

        }

    }

 

    public static void xuanzhe(int []a){

     

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

        int min=i;

 

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

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

                min=j;

                 

            }

        }

        if (min!=i){

            int t;

            t=a[i];

            a[i]=a[min];

            a[min]=t;

             

        }

    }

}

}

三、插入排序

1、从数组第2个元素开始抽取元素。

2、把它与左边第一个元素比较,如果左边第一个元素比它大,则继续与左边第二个元素比较下去,直到遇到不比它大的元素,然后插到这个元素的右边。

3、继续选取第3,4,….n个元素,重复步骤 2 ,选择适当的位置插入。

 

package org.junit;

import java.util.Arrays;

public class PaiXu3 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int[] a = { 12, 45, 46, 5, 15, 32, 4 };
        v(a);

        /*for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
            插入排序
        }
*/
    }

    public static void v(int[] a) {
        for (int i = 0; i < a.length - 1; i++) {
            int cu = a[i + 1];
            int j = i;
            while (j >= 0 && a[j] > cu) {
                a[j + 1] = a[j];
                j--;
                a[j + 1] = cu;
            }
    
        }
        System.out.println(Arrays.toString(a));
    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值