您现在的位置是:首页 > 文章详情

冒泡排序和选择排序

日期:2018-12-17点击:440

冒泡排序

  • 可以说是最简单的一种排序了,其排序的流程是

    • 对比数组中的各个数据,依次比较相邻的两个元素的大小
    • 如果前面的数据大于后面的数据,就交换这两个数据,如下

markdown_img_paste_20181218104721531

  • 这只是一次排序过程的结果,目前数组内的数据还不是有序的,但是已经把最大值给确定了,所以还需要多次排序,所以可以看出冒泡排序并不是高效的排序算法
  • 排序算法的java实现

    private static void mp(int[] arrs) { int tmp ; for (int i = 1; i < arrs.length; i++) { for (int j = 0; j < arrs.length - i; j++) { if (arrs[j] > arrs[j+1]){ tmp = arrs[j]; arrs[j] = arrs[j+1]; arrs[j+1] = tmp; } } System.out.println(Arrays.toString(arrs)); } }
  • 输出的排序过程为

    [12, 37, -2, 3, 999] [12, -2, 3, 37, 999] [-2, 3, 12, 37, 999] [-2, 3, 12, 37, 999]

选择排序

  • 这也是比较简单的一种排序算法,主要的流程是

    • 遍历数组取数组内最小的数据与数组的0下标进行交换,这样就确定了最小值
    • 然后从下标1之后的数据中找出最小值与下标为1的数据进行交换,就确定了第二小的数据,依次就完成了排序过程

markdown_img_paste_20181218110731133

  • 排序算法的java实现

    public static void xz(int[] arrs){ int index ,temp = 0; for (int i = 0; i < arrs.length; i++) { index = i; for (int j = i; j < arrs.length; j++) { if (arrs[j] < arrs[index]){ index = j;//寻找最小数下标 } } //判断最小数是否是自己 if (index != i){ temp = arrs[index]; arrs[index] = arrs[i]; arrs[i] = temp; } } System.out.println(Arrays.toString(arrs)); }
    • 输出的排序过程为

      [-2, 12, 37, 999, 3] [-2, 3, 37, 999, 12] [-2, 3, 12, 999, 37] [-2, 3, 12, 37, 999] [-2, 3, 12, 37, 999]
原文链接:https://yq.aliyun.com/articles/680206
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章