zoukankan      html  css  js  c++  java
  • java几种基本排序算法

    1.选择排序

    原理:将数组的每一个元素和第一个元素相比较,如果小于第一个元素则交换,选出第一小的,依次选出第二小,第三小的....

    代码

    int[] a = {1,3,2,5};
    int i,j,temp;
    
    for(i = 0; i < a.length-1; i ++) {
        temp = a[i];
        for(j = i + 1; j < a.length; j ++) {
             if(a[i] > a[j]) {
               a[i] = a[j];
               a[j] = temp;
               temp = a[i];
            }
        }
        
    }
         

    2.冒泡排序

    原理:相邻元素比较,如果后一个元素比前一个小,则交换,把最大的排到最后

    代码:

    int[] a = {1,3,2,5};
    int i,j,temp;
    
    for(i=0; i < a.length -1; i ++){
    
        for(j=i; j < a.length -1 -i; j++){
            if(a[j] > a[j+1]) {
                 temp = a[j];
                 a[j] = a[j+1];
                 a[j+1] = temp;
             }                  
        }
    
    }      

    3.插入排序

    原理:将数组分为前后2部分,拿后半部分的第一个元素和前半部分的每一个元素比较,插入合适位置

    代码:

    int[]   a = {1,2,5,3};
    int i,j,temp;
    
    for(i = 1; i < length; i ++){
       temp = a[i];
       for(j = i -1;  j >=0; j --) {
          if(temp < a[j]) {
                a[j+1] = a[j];
                a[j] = temp; 
           } else {
               break;          
         }
        }
    }
  • 相关阅读:
    bzoj 3243: [Noi2013]向量内积
    bzoj 4818: [Sdoi2017]序列计数
    AtCoder Grand Contest 023 F
    bzoj 4573: [Zjoi2016]大森林
    bzoj 5305: [Haoi2018]苹果树
    bzoj 5298: [Cqoi2018]交错序列
    codeforces496C
    codeforces534B
    牛客小白月赛13
    codeforces605A
  • 原文地址:https://www.cnblogs.com/mzlm/p/9052397.html
Copyright © 2011-2022 走看看