zoukankan      html  css  js  c++  java
  • 《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         }

      

      

      

  • 相关阅读:
    android 75 新闻列表页面
    android 74 下载文本
    android 73 下载图片
    android 72 确定取消对话框,单选对话框,多选对话框
    android 71 ArrayAdapter和SimpleAdapter
    android 70 使用ListView把数据显示至屏幕
    maven如何将本地jar安装到本地仓库
    Centos6.7搭建ISCSI存储服务器
    解决maven打包编译出现File encoding has not been set问题
    MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
  • 原文地址:https://www.cnblogs.com/m-xy/p/3361478.html
Copyright © 2011-2022 走看看