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

简单排序

时间:2020-03-22 17:51:40      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:ram   bsp   ble   info   tps   array   冒泡   rtt   param   

一、冒泡排序

      技术图片

 

      相邻的进行比较,大的向后移动,

public class Sort01 {
    /**
     * 进行排序
     * @param a
     */
    public static void sort(int[] a){

        for(int i=a.length-1;i>0;i--){
            for(int j=0;j<i;j++){
                if (greater(a[j],a[j+1])){
                    exch(a,j,j+1);
                }
            }
        }
    }

    /**
     * 比较v和w谁大
     *  v.compareTo(w)>0,则v>w
     * @param v
     * @param w
     * @return
     */
    public static boolean greater(Comparable v,Comparable w){
        return v.compareTo(w)>0;
    }

    /**
     * 交换
     */
    public static void exch(int[] a,int i,int j){
        int temp;
        temp=a[i];
        a[i]=a[j];
        a[j]=temp;
    }

}
public class SortTest {
    public static void main(String[] args) {
        int[] arr ={4,5,6,3,2,1};
        Sort01.sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

二、选择排序

       技术图片

 

        选择排序是:第一次在数据中找到最小的放到放到第一位,第二在数据中找除过第一个数的最小数放到第二位......以此类推;

         找到最小的方法:假设第一个为最小,和其他的挨个比较;

 

public class Sort01 {
    /**
     * 进行排序
     * @param a
     */
    public static void sort(Comparable[] a){
         for(int i =0;i<a.length-2;i++){
            for (int j=i+1;j<a.length;j++){
//比较最小索引和j索引处的值
if(greater(a[i],a[j])){ exch(a,i,j); } } } } /** * 比较v和w谁大 * v.compareTo(w)>0,则v>w * @param v * @param w * @return */ public static boolean greater(Comparable v,Comparable w){ return v.compareTo(w)>0; } /** * 交换 */ public static void exch(Comparable[] a,int i,int j){ Comparable t; t=a[i]; a[i]=a[j]; a[j]=t; } }
public class SortTest {
    public static void main(String[] args) {
        Integer[] arr ={4,5,6,3,2,1};
        Sort01.sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

 

 

三、插入排序

       原理:1.把所有的元素分为两组,已排序和未排序

                  2.找到未排序的组中的第一个元素,向已经排序的组中进行插入

                  3.倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,就把待插入元素放到此位置,其他元素后移

                     技术图片

 

 public static void sort(Comparable[] a){
        for(int i=1;i<a.length;i++){
            for (int j=i;j>0;j--){
                if(greater(a[j-1],a[j])){
                    exch(a,j-1,j);
                }else{
                    break;
                }
            }
        }

    }

 

简单排序

标签:ram   bsp   ble   info   tps   array   冒泡   rtt   param   

原文地址:https://www.cnblogs.com/cqyp/p/12547045.html

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