很多时候,听别人在讨论快速排序,选择排序,冒泡排序等,都觉得很牛逼,心想,卧槽,排序也分那么多种,就觉得别人很牛逼呀,其实不然,当我们自己去了解学习后发现,并没有想象中那么难,今天就一起总结一下各种排序的实现原理并加以实现。

                        -WZY

一、文章编写风格总览

    选择排序、插入排序、冒泡排序、归并排序、快速排序、希尔排序、堆排序、

    最后对各种排序算法进行比较,理清楚各种排序的优缺点。  

    其中快速排序是冒泡排序的增强,堆排序是对选择排序的增强,希尔排序是对插入排序的增强,这就6种了,最后一种就是归并排序。

          数据结构(三) 用java实现七种排序算法。

二、选择排序

    选择排序是我认为最简单的一种排序了,因为我们自己也很容易想到这种方法对数组进行排序,原理非常简单,

      数据结构(三) 用java实现七种排序算法。

          原理图如上所示:先将第一个位值上的数跟之后所有位置上的数依次进行比较,如果第一个位置上的数比第二个位置上的数大,则进行互换,然后继续将第一个位置上的数与第三个位置上的数进行比较,经过一轮的比较后,第一个位值上的数就是所有数中最小的一个,接着将第二个位置上的数与之后所有位置上的数进行比较,同样的规则,第二轮比较结束后,第二位放的就是所有数中第二小的数,依次往下比,直到最后一个位置结束。按照这种方法进行排序,就叫做选择排序。

          代码实现

            数据结构(三) 用java实现七种排序算法。

          测试

            数据结构(三) 用java实现七种排序算法。

    //选择排序,将数组按从小到大排序
    public void selectSort(int[] array){
        //根据原理分析,使用两层循环即可实现
        for(int i=0; i<array.length; i++){//第一层
            
            for(int j=i+1; j<array.length;j++){    //第二层
                if(array[i] > array[j]){    //数据互换。将小的放前面
                    int t = array[i];
                    array[i] = array[j];
                    array[j] = t;
                }
            }
            
        }
    }
View Code

相关文章:

  • 2022-12-23
  • 2021-08-04
  • 2021-11-14
  • 2022-01-04
  • 2021-09-20
  • 2022-12-23
  • 2021-07-18
猜你喜欢
  • 2021-07-02
  • 2021-09-11
  • 2021-12-08
  • 2021-12-02
  • 2022-12-23
  • 2021-11-01
相关资源
相似解决方案