本文共 2155 字,大约阅读时间需要 7 分钟。
选择排序的原理:
遍历所有的元素,得到最小的元素,并将最小的元素与左边第一个元素进行交换,再次遍历除了第一个位置的所有元素,得到最小的元素,与左边第二个元素进行交换。当进行第二次遍历的时候,将最小的元素与左边的第二个元素进行交换,如此循环遍历,即可得到排序后的元素。Demo实现的基本基本步骤:1、准备数组2、编写常见的数组操作方法3、编写选择排序的方法4、测试选择排序具体参考如下:package com.zcp.ch03;/**
冒泡排序的实现
*/public class SelectArray {//数组
private long[] arr = null;//数组中有效数据的大小
private int elems;public SelectArray() { arr = new long[50];}public SelectArray(int length){
arr = new long[length];}/**
/**
@return
*/public int find(long value){ int i = 0;for(i=0;i<elems;i++){ if(value==arr[i])break;}if(i >(elems-1)){
return -1;}return i;
}
/***
@param value
*/public boolean delete(long value){int key = find(value);
if(key == -1){ System.out.println("删除数据失败,未查找到要删除的数据");return false;}for (int i = key; i < elems; i++) { arr[i] = arr[i+1];}elems--;return true;}
/***
/**
*/
public void selectSort(){int min = 0;
long tmp = 0;for (int i = 0; i < elems-1; i++) {for (int j = i; j < elems; j++) { if(arr[min] > arr[j]){ min = j; }}tmp = arr[i];arr[i] = arr[min];arr[min] = tmp;
}
}
/**
}
测试代码如下:package com.zcp.ch03;public class TestSelectMain {
public static void main(String[] args) { SelectArray bubbleArray = new SelectArray(); bubbleArray.insert(10); bubbleArray.insert(50); bubbleArray.insert(80); bubbleArray.insert(2); bubbleArray.insert(2); bubbleArray.disPlay(); bubbleArray.selectSort();; System.out.println("选择排序后的数据如下:"); bubbleArray.disPlay();}
}
转载于:https://blog.51cto.com/7298246/2154949