zoukankan      html  css  js  c++  java
  • 简单排序的对比

    bubblesort:前后两个元素进行比较,数值较大的元素向后移动,第一轮后最后一个位置上时最大元素;再循环一次,倒数第二位是次大的元素.....直到所有元素按从小到大排列好。

     public void bubblesort()
     {
        int i,j;
        for(i=0;i<nElems-1;i++)
         {
            for(j=0;j<nElems-1-i;j++)
              if(a[j]>a[j+1]) 
              swap(j,j+1);  
         }
     }

    selectsort:(1)把第一个值设置成最小值,然后通过比较找出最小值,然后把最小值和第一个位置的元素互换;

                    (2)然后把第二个元素设置成最小值,重复比较,互换的过程;直到倒数第二个元素与最后一个元素比较互换后,结束。

     public void selectsort()
     {
             int i,j,min;
             for(j=0;j<nElems-1;j++)
               {
                   min=j;
                   for(i=j+1;i<nElems;i++)
                      if(a[min]<a[i])
                         min=i;
                     swap(j,min);
                 }
     }

    insertsort:(1)从第二个元素开始,那第二个元素与它之前的所有元素作比较,比它大的都向后移动一位;然后把这个元素放到while循环结束时的位置上。

                    (2)从i开始,则i之前的元素都是有序的。

    public void insertsort()
     {
             for(int j=1;j<nElems;j++)
               {
                  int key=a[j];
                   int i=j;
       //while(a[i-1]>=key&&i>0) 这种条件下会出现下界溢出,不同条件之间的并列
       // 前后是有序的
                 while(i>0&&a[i-1]>=key)
                   {
                         a[i]=a[i-1];
         //i--; 
                         --i;
         //上面的为什么一样,但是正确是哪一种?
                 }
         a[i]=key;
          }
     }

  • 相关阅读:
    java基础-集合笔记
    Spring工具类
    XStream的基本使用
    java之路径问题
    Vue 动态组件渲染问题分析
    watch案例解析(element-ui el-select 无法选中问题剖析)
    v-if案例解析(element-ui form-item 结合 v-if 动态生成rule规则表单元素,表单无法验证问题剖析 )
    Vue 虚拟Dom 及 部分生命周期初探
    Android仿苹果版QQ下拉刷新实现(二) ——贝塞尔曲线开发"鼻涕"下拉粘连效果
    AngularJs(SPA)单页面SEO以及百度统计应用(下)
  • 原文地址:https://www.cnblogs.com/growAriel/p/3600860.html
Copyright © 2011-2022 走看看