前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 冒泡排序与快速排序的实现

Java 冒泡排序与快速排序的实现

作者头像
Rekent
发布2018-09-04 15:04:30
7350
发布2018-09-04 15:04:30
举报
文章被收录于专栏:日常分享日常分享日常分享

冒泡排序

     基本特点

      (1)基于交换思想的排序算法         (2)从一端开始,逐个比较相邻的两个元素,发现倒序即交换。           (3)一次遍历,一定能将其中最大(小)的元素交换到其最终位置上

    排序过程模拟

    代码实现

static void Bubble_Sort(int array[]){
        for(int i=0;i<array.length;i++)
        {
            for(int j=0;j<array.length-i-1;j++)
            {
                if(array[j]<array[j+1])
                {
                    int temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
            System.out.print("第"+(i+1)+"次排序的结果:");
            for(int c=0;c<array.length;c++)
            {
                System.out.print(array[c]+"\t");
            }
            System.out.println();
        }
        
    
        System.out.print("最终排序结果:");
        for(int c=0;c<array.length;c++){
            System.out.print(array[c]+"\t");
        }
    }

快速排序

  基本思想

     选定一个元素作为中间元素,然后将表中所有元素与改中间元 素相比较,将表中比中间元素小的元素调到表的前面,将比中间元素大的元素 调到后面,再将中间元素放在

     这两部分之间以作为分界点,这样便得到一个划分。 然后再对左右两部分分别进行快速排序,直到每个子表仅有一个元素或为空表为止。

  划分方法

      1.中间元素的选择:作为参考点的中间数的选择没有特别的规定, 本次默认为第一个元素。

      2.中间元素所占空间可能被其他元素占用,为此,可先保存该元素的值到其他位置以腾出起空间。

      3.这样,前面便有一个空位置(i),可从最后面开始往前搜索一个比中间数大的元素,并将其放置到后面的这个位置上。

             4.此刻,后面便有了一个空位置(j),可从前面开始往后搜索一个比中间数小的元素,并将其放置到前面的位置。4.重复1 2 ,直到两边搜索的空位重合(i=j)。

  排序过程模拟

  代码实现

static int partition(int array[],int start,int end){
        int temp=array[start];
        int i=start;
        int j=end-1;
        while(i!=j){
            while(i<j&&array[j]>temp){
                j--;
            }
            if(i<j){
                array[i]=array[j];
                i++;
            }
            while(i<j&&array[i]<temp){
                i++;
            }
            if(i<j){
                array[j]=array[i];
                j--;
            }
            
        }
        array[i]=temp;
        return i;    
    }
    
    static void QuickSort(int a[],int s,int e){
        if(s<e){
            int i=partition(a, s, e );
            QuickSort(a, s,i-1);
            QuickSort(a, i+1, e);
        }
        
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-05-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 冒泡排序
    •      基本特点
      •     排序过程模拟
        •     代码实现
        • 快速排序
          •   基本思想
            •   划分方法
              •   排序过程模拟
                •   代码实现
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档