Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 279|回复: 0

[算法学习]数据结构上的4种简单排序算法。

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-11-1 00:00:25 | 显示全部楼层 |阅读模式
    //数据结构上的4种简单排序算法。
    /**
    * <p>Title:
    * </p><p>Description: </p>
    * <p>Copyright: Copyright (c) 2005</p>
    * <p>Company: </p>
    * @author 钟伟海
    * @version 1.0
    */

    1. public class Sort
    2. {
    3.     public Sort()
    4.     {
    5.         
    6.         }
    7.         
    8.     int[] s = {12,4,56,44,3,34,32,2,5,21};
    9.     int a = 10;
    复制代码

      
       
       
         
       

       
       
      

    1.     //1、插入排序(先排头两个元素的序,再排头三个元素的序......)
    2.     public void insort()
    3.     {
    4.         
    5.         int in,out;
    6.         for (out = 1;out< a;out++)
    7.         {
    8.           int temp = s[out];
    9.           in = out;
    10.           while(in>0&&s[in-1]>=temp)
    11.           {
    12.               s[in]=s[in-1];
    13.               --in;
    14.               }
    15.          s[in]=temp;        
    16.         }
    17.         for (int j =0;j< a;j++)
    18.         {
    19.            System.out.println(j+"="+s[j]);
    20.         }
    21.         }
    22.         
    23.    //2、选择排序(第一轮,每个数与第一个数比较,最小者成为第一个数,...)
    24.     public void selectSort()
    25.     {
    26.         int out,in,min;
    27.         for (out =0;out< a-1;out++)
    28.         {
    29.             min=out;
    30.             for (in = out+1;in< a;in++)
    31.             {
    32.                 if (s[in]< s[min])
    33.                
    34.                 swap(in,min);
    35.                
    36.                
    37.                 }
    38.            
    39.             }
    40.             for (int j =0;j< a;j++)
    41.             {
    42.                System.out.println(j+"="+s[j]);
    43.             }
    44.         }
    45.         
    46.     //3、冒泡排序
    47.     public void bubbleSort()
    48.     {
    49.         int out,in;
    50.         for(out = a-1;out>1;out--)
    51.         {
    52.             for (in=0;in< out;in++)
    53.             {
    54.                 if (s[in]>s[in+1])
    55.                 {
    56.                     swap(in,in+1);
    57.                     }
    58.                 }
    59.             }
    60.             for (int j =0;j< a;j++)
    61.             {
    62.                System.out.println(j+"="+s[j]);
    63.             }   
    64.         }
    65.    
    66.    
    67.       private void swap(int one ,int two)
    68.       {
    69.           int temp  = s[one];
    70.           s[one] = s[two];
    71.           s[two] = temp;
    72.           }
    73.   
    74.         
    75.         public static void main(String[] args)
    76.         {
    77.             Sort in = new Sort();
    78.            //in.insort();
    79.            in.selectSort();
    80.            // in.bubbleSort();
    81.             
    82.             }
    83.     }
    84. 4、快速排序
    85.    先取数组的中间元素,并将数组分为两个较小的数组,其中一个数组只含大于
    86. 这个中间值的元素,而另一个数组只含小于这个中间值的元素,重复这一过程。
    87. public class arrayQsort{
    88.        static void qsort(int array[],int first,int last){
    89.           int low=first;
    90.           int high=last;
    91.           if(first>=last) return;
    92.         
    93.           int mid=array[(first+last)/2];
    94.           do{
    95.              while(array[low]< mid)
    96.                 low++;
    97.              while(array[high]>mid)
    98.                 high--;
    99.              if(low<=high){
    100.                 int temp=array[low];
    101.                 array[low++]=array[high];
    102.                 array[high--]=temp;
    103.              }
    104.           }while(low<=high);
    105.            
    106.           qsort(array,first,high);
    107.           qsort(array,low,last);
    108.        }
    109.      public static void main(String[] args){
    110.             
    111.        int[] s = {12,4,56,44,3,34,32,2,5,21};
    112.        qsort(s,0,9);
    113.        for (int j =0;j<10;j++)
    114.         {
    115.            System.out.println(j+"="+s[j]);
    116.         }
    117.      }
    118. }
    119.       
    复制代码


                            function TempSave(ElementID)
                            {
                                    CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value);
                                    CommentsPersistDiv.save("CommentXMLStore");
                            }
                            function Restore(ElementID)
                            {
                                    CommentsPersistDiv.load("CommentXMLStore");
                                    document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent");
                            }
                   
                      




    程序运行的一个结果:

    C:java>java Sort
    0=2
    1=3
    2=4
    3=5
    4=12
    5=21
    6=32
    7=34
    8=44
    9=56
    C:java>java arrayQsort
    0=2
    1=3
    2=4
    3=5
    4=12
    5=21
    6=32
    7=34
    8=44
    9=56
    C:java>


    源码下载:http://file.javaxxz.com/2014/11/1/000024843.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-19 05:18 , Processed in 0.405030 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表