• 《java数据结构与算法》系列之“简单排序"-冒泡,选择,插入


    好几天又没写,因为这几天很闲,平时忙的时候自己再累都不会睡着,但是呢这没事了,照理说应该是不瞌睡了,结果还睡着了。

    所以说,人很贱。也验证了一句话,没有目标的人其实最无聊。人一定要有自己的工作,这工作部限于朝九晚五的工作,像家庭主妇也可以是工作,总之要有目标,如果没有,我想人会发疯的。当然休息的时候另外。废话到此。

    简单排序包括:冒泡,选择,插入三种。

    1:冒泡排序:

    原理:从上到下,对每一对相邻的数进行比较,直到最大的数或最小的数字飘到最上面。

     1 int a[] = {1,26,6,12,8,15} ;//初始数组
     2 int temp ;
     3 for(int i =0 ; i < a.length -1  ; i ++ )
     4 {
     5     for(int j=0 ; j < a.length -1 -i ; j++ )
     6     { 
     7     //每次一轮缩掉一个比较的数,即轮数是这样的:外层循环总5轮(数组的个数-1)
     8         1和2,2和3,3和4,4和5,5和6 第一轮
     9         1和2,2和3,3和4,4和5 第二轮
    10         1和2,2和3,3和4  第三轮
    11         1和2,2和3  第四轮
    12         1和2   第五轮
    13         if(a[j]>a[j+1])//从大到小排列 
    14         { temp = a[j]; 
    15           a[j]=a[j+1]; 
    16           a[j+1]=temp; 
    17         }
    18      }
    19  }

    2:选择排序:

    原理:每一轮选择一个最小或大的书放在数列的最开头,然后对剩下的数依次取一个最大或小的数放在之前那个数列的后面,依次类推。

     1 int a[] = {1,26,6,12,8,15} ;//初始数组
     2 int temp ;
     3 for(int i =0 ; i < a.length -1  ; i ++ )
     4 {
     5     for(int j=i+1 ; j < a.length  ; j++ )
     6     { 
     7     //每次一轮去掉一个最小或大的数,即轮数是这样的:外层循环总5轮(数组的个数-1)
     8         1和2,1和3,1和4,1和5,1和6 第一轮 
     9         2和3,2和4,2和5,2和6 第二轮 去掉1
    10         3和4,3和5,3和6  第三轮  去掉2
    11         4和5,4和6  第四轮 去掉3
    12         5和6   第五轮 去掉4
    13         if(a[j]>a[j+1])//从大到小排列 
    14         { temp = a[j]; 
    15           a[j]=a[j+1]; 
    16           a[j+1]=temp; 
    17         }
    18      }
    19  }

    3:插入排序:

    原理:从第一个数字开始,下一个数字依次与前面已经排好的所有数字依次比较并排序即插入到前面已经排好序的里面,第一个数字假定是已经排好了的数字。

     1 int a[] = {1,26,6,12,8,15} ;//初始数组
     2         int temp ;
     3 ////算法:2与1比较,排好1和2
     4 //           3与2比较,3与1比较  排好1,2,3
     5 //           4与3比较,4与2比较,4月1比较  拍好1,2,3,4
     6 //           5和4,5和3,5和2,5和1  拍好1,2,3,4,5
     7 //           6和5,6和4,6和3,6和2,6和1  完成排序。 拍好1,2,3,4,5,6
     8         for(int i=1; i <a.length ; i++){ i控制2,3,4,5,6
     9             for( int j =1; j < i+1 ; j++){ j控制1,1和2,1和2和3,1和2和3和4,1和2和3和4和5
    10                 if(a[i]>a[j-1]){
    11                     temp=a[i];
    12                     a[i]=a[j-1];
    13                     a[j-1]=temp;
    14                 }
    15             }
    16         }

      

      

      

  • 相关阅读:
    洛谷P5245 【模板】多项式快速幂
    洛谷P5205 【模板】多项式开根(FFT)
    laravel 数据库连接Mysql
    laravel V层引入css 和js方法
    laravel V层
    小程序地区时间自定义选择器 picker
    点击a标签 跳到当前页面指定div
    图片上下居中
    小程序消除图片下边距的三个方法
    百度地图定位
  • 原文地址:https://www.cnblogs.com/m-xy/p/3361478.html
Copyright © 2020-2023  润新知