首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >排序算法Java代码实现(一)—— 选择排序

排序算法Java代码实现(一)—— 选择排序

作者头像
CherishTheYouth
发布2019-08-14 09:45:30
发布2019-08-14 09:45:30
9130
举报
文章被收录于专栏:Vue技术实践Vue技术实践

以下几篇随笔都是记录的我实现八大排序的代码,主要是贴出代码吧,讲解什么的都没有,主要是为了方便我自己复习,哈哈,如果看不明白,也不要说我坑哦!

本片分为两部分代码:

  • 常用方法封装

排序算法里需要频繁使用 交换数组中两数位置 的操作,另外,为了方便我打印数组查看结果,我封装一个 ArrayBase.java基类,用来实现swap方法和printArray方法;

  • 选择排序算法

(一)ArrayBase.java

代码语言:javascript
复制
/**
 * 
 */
package com.cherish.SortingAlgorithm;

/**
 * @author acer
 *
 */
public class ArrayBase {

    /**
     * 
     */
    public ArrayBase() {
        // TODO 自动生成的构造函数存根
    }

    //数组中两数交换位置
        public static void swap(int[] array,int i,int j)
        {
            int t = array[i];
            array[i] = array[j];
            array[j] = t;
        }
        
        //打印数组
        public static void printArray(int[] array)
        {
            System.out.print("数组打印为:\t");
            for(int i = 0; i < array.length;i++)
            {
                System.out.print(array[i] + "\t");            
            }
            System.out.println();
        }
}

(二)选择排序算法(代码继承ArrayBase基类,swap和printArray方法直接用)

排序思想:

代码语言:javascript
复制
从数组中选择最小元素,将它与数组的第一个元素交换位置。
代码语言:javascript
复制
再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。
代码语言:javascript
复制
不断进行这样的操作,直到将整个数组排序。
代码语言:javascript
复制
/**
 * 
 */
package com.cherish.SortingAlgorithm;

/**
 * @author acer
 *
 */
public class chapter_1_选择排序 extends ArrayBase {

    /**
     * 
     */
    public chapter_1_选择排序() {
        // TODO 自动生成的构造函数存根
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        int[] array = new int[] {3,4,7,9,2,5,1,8};
        printArray(array);
        SelectSorting(array);
        printArray(array);
    }
    
    /*
     * 从数组中选择最小元素,将它与数组的第一个元素交换位置。
     * 再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。
     * 不断进行这样的操作,直到将整个数组排序。
     * */
    
    public static void SelectSorting(int[] array)
    {
        if(array == null) {
            return;
        }
        int length = array.length;
        for(int i = 0;i<length-1;i++)
        {
            int min = i;//令第1个数为最小的数
            for(int j = i + 1;j < length ; j++)
            {
                //排序,找出数组剩下的数中最小的数
                if(array[min] > array[j])
                {
                    min = j;
                }
            }
            swap(array, i, min);
        }
    }
}

参考文献:https://www.cnblogs.com/snowcan/tag/排序算法/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-08-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (一)ArrayBase.java
  • (二)选择排序算法(代码继承ArrayBase基类,swap和printArray方法直接用)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档