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

时间:2023-03-09 23:28:06
排序算法Java代码实现(一)—— 选择排序

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

本片分为两部分代码:

  • 常用方法封装

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

  • 选择排序算法

(一)ArrayBase.java

/**
*
*/
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方法直接用)

排序思想:

从数组中选择最小元素,将它与数组的第一个元素交换位置。
再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。
不断进行这样的操作,直到将整个数组排序。
/**
*
*/
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/排序算法/