[Java]数组排序-选择排序 冒泡排序 插入排序

来源:互联网 发布:intent传递大图片数据 编辑:程序博客网 时间:2024/05/16 05:42
1 选择排序
  原理:a 将数组中的每个元素,与第一个元素比较
          如果这个元素小于第一个元素, 就将这个
         两个元素交换.
       b 每轮使用a的规则, 可以选择出一个最小元素
        放到第一个位置.
       c 经过n-1轮比较完成排序
   简单说: 每轮选择最小的放到前面.
       
 
2 冒泡排序
  原理: a 逐一比较数组中相邻的两个元素, 如果后面
         的数字小于前面的数字, 就交换先后元素.
       b 经过一个轮次的比较, 一定有一个最大的排
         在最后的位置.
       c 每次比较剩下的元素, 经过n-1次比较, 可以
         实现排序
  简单说: 比较交换相邻元素,每次最大的漂移到最后
    
3 插入排序
  原理: a 将数组分为两部分, 将后部分的第一张逐一
         与前部分每一张比较, 如果当前元素小, 就
         一点被比较元素.

        b 找到合理位置插入.


package com.dezai;import java.util.Arrays;public class VAlign {public static void main(String[] args) {int[] a=new int[]{8,3,5,1,4,2,7};String s=Arrays.toString(selectionSort(a));System.out.println("选择排序:"+s);String s1=Arrays.toString(bubolSort(a));System.out.println("冒泡排序: "+s1);String s2=Arrays.toString(InserSort(a));System.out.println("插入排序: "+s2);}/* * 选择排序 */public static int[] selectionSort(int[] ary){for(int i=0;i<ary.length;i++){for(int j=i+1;j<ary.length;j++){if(ary[j]<ary[i]){int temp=ary[i];ary[i]=ary[j];ary[j]=temp;}}}return ary;}/* * 冒泡排序 */public static int[] bubolSort(int[] ary){for(int i=0;i<ary.length;i++){for(int j=0;j<ary.length-i-1;j++){if(ary[j]>ary[j+1]){int temp=ary[j+1];ary[j+1]=ary[j];ary[j]=temp;}}}return ary;}/* * 插入排序 */public static int[] InserSort(int[] ary){for(int i=0;i<ary.length;i++){int temp =ary[i];int j;for(j=i-1;j>=0 && temp<ary[j];j--){if (temp<ary[j]){ary[j+1]=ary[j];}else{break;}}ary[j+1]=temp;}return ary;}}


0 0
原创粉丝点击