• 《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         }

      

      

      

  • 相关阅读:
    winRT Com组件开发流程总结
    win32 COM组件编写
    windows8 APP开发的远程调试
    VS2012中,C# 配置文件读取 + C#多个工程共享共有变量 + 整理using语句
    STL源码--序列式容器
    代码规范
    Visual Studio Code 断点调试配置方法(请按我的步骤 一定可以做到)
    CSS层级关系 学习笔记
    VUE 学习笔记
    CSS 学习笔记
  • 原文地址:https://www.cnblogs.com/m-xy/p/3361478.html
Copyright © 2020-2023  润新知