java简单选择排序代码,java中选择排序算法
Select sort Java示例Select sort是一种简单而缓慢的排序算法,它从未排序的部分中重复选择最低或最高的元素,然后将其移动到已排序部分的末尾。通常,从性能的角度来看,它甚至比插入sort还要慢。它不以任何方式适应数据,所以它的运行时间总是次要的。
但是,您不应该得出永远不应该使用选择性排序的结论。好的地方是选择排序的属性,可以最大限度地减少每次迭代的交换次数。在交换项目成本非常高的应用中,选择排序可能是一种很好的选择算法。
选择排序算法下面是选择排序的逻辑代码结构或者通常的伪代码。
对于i=1:n,
k=i
对于j=i 1:n,如果a[j] a[k],k=j
//-不变量:a[I]的最小的a[k].n]
交换a[i,k]
//-不变量:a[1.i]处于最终位置
用简单的英语结束,会发生以下情况:
数据元素分为两部分:有序部分(最初为空)和未排序部分(最初为完整数组)。假设排序顺序从低到高,请从未排序部分中找出可比顺序最低的元素。将找到的元素放在排序部分的末尾。重复步骤2和3,直到未排序的部分中没有剩余的元素。选择排序Java源代码下面是一个用Java实现选择排序的例子。
公共类选择排序示例
{
公共静态void main(String[] args) {
//这是未排序的数组
Integer[] array=new Integer[] { 12,13,24,10,3,6,90,70 };
//让我们使用选择排序来排序
selectionSort(数组,0,array . length);
//验证排序后的数组
system . out . println(arrays . tostring(array));
}
@SuppressWarnings({ rawtypes , unchecked })
public static void selection sort(Object[]array,int fromIndex,int toIndex) {
对象d;
for(int current index=from index;currentIndex toIndexcurrentIndex)
{
int indexToMove=currentIndex
for(int tempIndexInLoop=current index 1;tempIndexInLoop toIndextempIndexInLoop)
{
if(((可比)数组[indexToMove])。compare to(array[tempIndexInLoop])0)
{
//交换
indexToMove=tempIndexInLoop
}
}
d=array[current index];
array[current index]=array[index to move];
array[index to move]=d;
}
}
}
Output: [3,6,10,12,13,24,70,90]如果您知道任何提高选择性排序性能的方法,请分享。我无能为力。
版权归作者所有:原创作品来自博主小二上九8,转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。