Java中冒泡排序法,选择排序法,反转排序法代码

来源:互联网 发布:淘宝涮单怎么样更赚钱 编辑:程序博客网 时间:2024/05/22 09:42

冒泡排序法:

public class BubbleSort {public static void main(String[] args) {// 创建一个数组,这个数组元素是乱序的int[] array = { 63, 4, 24, 1, 3, 15 };// 创建冒泡排序类的对象BubbleSort sorter = new BubbleSort();// 调用排序方法将数组排序sorter.sort(array);}/** *冒泡排序 *  * @param array *            要排序的数组 */public void sort(int[] array) {for (int i = 1; i < array.length; i++) {// 比较相邻两个元素,较大的数往后冒泡for (int j = 0; j < array.length - i; j++) {if (array[j] > array[j + 1]) {int temp = array[j];// 把第一个元素值保持到临时变量中array[j] = array[j + 1];// 把第二个元素值保存到第一个元素单元中array[j + 1] = temp;// 把临时变量也就是第一个元素原值保持到第二个元素中}}}showArray(array);// 输出冒泡排序后的数组元素}/** * 显示数组所有元素 *  * @param array *            要显示的数组 */public void showArray(int[] array) {for (int i : array) {// foreach格式遍历数组System.out.print(" >" + i);// 输出每个数组元素值}System.out.println();}}
选择排序法:

public class SelectSort {public static void main(String[] args) {// 创建一个数组,这个数组元素是乱序的int[] array = { 63, 4, 24, 1, 3, 15 };// 创建直接排序类的对象SelectSort sorter = new SelectSort();// 调用排序对象的方法将数组排序sorter.sort(array);}/** *直接选择排序法 *  * @param array *            要排序的数组 */public void sort(int[] array) {int index;for (int i = 1; i < array.length; i++) {index = 0;for (int j = 1; j <= array.length - i; j++) {if (array[j] > array[index]) {index = j;}}// 交换在位置array.length-i和index(最大值)两个数int temp = array[array.length - i];// 把第一个元素值保持到临时变量中array[array.length - i] = array[index];// 把第二个元素值保存到第一个元素单元中array[index] = temp;// 把临时变量也就是第一个元素原值保持到第二个元素中}showArray(array);// 输出直接选择排序后的数组值}/** * 显示数组所有元素 *  * @param array *            要显示的数组 */public void showArray(int[] array) {for (int i : array) {// foreach格式遍历数组System.out.print(" >" + i);// 输出每个数组元素值}System.out.println();}}
反转排序法:

public class ReverseSort {public static void main(String[] args) {// 创建一个数组int[] array = { 10, 20, 30, 40, 50, 60 };// 创建反转排序类的对象ReverseSort sorter = new ReverseSort();// 调用排序对象的方法将数组反转sorter.sort(array);}/** *直接选择排序法 *  * @param array *            要排序的数组 */public void sort(int[] array) {System.out.println("数组原有内容:");showArray(array);// 输出排序前的数组值int temp;int len = array.length;for (int i = 0; i < len / 2; i++) {temp = array[i];array[i] = array[len - 1 - i];array[len - 1 - i] = temp;}System.out.println("数组反转后内容:");showArray(array);// 输出排序后的数组值}/** * 显示数组所有元素 *  * @param array *            要显示的数组 */public void showArray(int[] array) {for (int i : array) {// foreach格式遍历数组System.out.print("\t" + i);// 输出每个数组元素值}System.out.println();}}