• 冒泡排序


    1、冒泡排序:
    工作原理:依次相邻元素进行比较,将小数放在前面,大数放在后面,每一次扫描是将最大的数放在最右边,每次扫描完之后,下次扫描的个数减一,直到所有的数都放好位置。即第一次扫描:比较第一个数和第二个数,判断大小,小数在前,大数在后,
    接着比较第二个数和第三个数,依次比较,直到最后一个数。此时最大的数在最后一个位置上了。第二次扫描:比较从第一个数和第二个数,判断大小,小数在前,大数在后,直到到倒数第二个数为止。同样的方法扫描n次。
    本质是每扫描一次就拍好了一个最大值的位置,故叫做冒泡排序。

    int [] a ={0,56,6,8,9,10};
    int len = 6;
             //这里要明白
             for(int i=0;i<len-1;i++) {  //这层循环控制的是需要排序的数的个数,即控制扫面的轮数
                      Boolean  IsChange=false;//这是冒泡改进的地方,增加一个标志来判断是否已经提前排好序了   //这里要注意由于比较的是在一个循环下前一个数跟后一个数比较
                      for(int j=0;j<len-i-1;j++) {   //这层循环是控制每一轮扫描之后,将最大的数放在最右边
                        //这里的j<len-i-1要注意边界的原因,所以是j<len-i-1
                          if(a[j]>a[j+1]){ //相邻元素比较 ,交换
                              int temp=a[j];
                              a[j]=a[j+1];
                              a[j+1]=temp;
                              IsChange=true;//如果一次扫描完之后都没发生任何的交换,则表明已经排好序了
                          }
                      }
                      if(!IsChange){
                          System.out.println("结束排序"+a);
                          return;
                      }
                 }

    2、插入排序:

    工作原理:通过构建将整个待排序的序列分成有序序列和无序序列,从无序序列当中选择一个元素插入待有序序列中。这里需要注意的是,最初将整个序列的第一个数作为有序序列,后面n-1个数作为无序序列。从无序序列选择第一个数开始插入有序序列中,插入的方式是从右向左开始扫描有序序列,最右边的数是有序序列中最大的数,依次比较,待排序的数比已排好的数小,则将已排好的数往后移,最后找出待插入的数合适的位置插入。

  • 相关阅读:
    android获得屏幕高度和宽度
    Android中RelativeLayout各个属性的含义
    Android JNI知识简介
    Android结束进程方法
    android开发中的图片资源问题
    android framework下public.xml中添加资源问题
    I'm back
    test,exec,match,replace方法区别 正则
    fiddler抓包工具 https抓取 ios手机端抓取
    前端优化方案
  • 原文地址:https://www.cnblogs.com/lgg20/p/11138649.html
Copyright © 2020-2023  润新知