您的位置:首页 > 其它

选择排序

2013-03-20 22:17 253 查看
//选择排序
package com.SelectSort;

public class SelectSort {
public static void main(String[] args)
{
int[] array = new int[]{15,27,34,12,15,22,48,1};

outPut(array);
selectAscending(array);
selectDscending(array);
}

/**
* 输出数组
* @param array
*/
public static void outPut(int[] array)
{
for (int i = 0; i < array.length; ++i)
{
System.out.print(array[i] + " ");
}

System.out.println();
}

/**
* 选择升序排序
* @param array
*/
public static void selectAscending(int[] array)
{
for (int i = 0; i < array.length - 1; ++i)
{
int smallest = i;  //最小元素的下标假设为i
//在其余数组中便利最小的值
for (int j = i + 1; j < array.length; ++j)
{   //当某数的大小小于原先假定的数组下标表示的最小值是,改变最小下标
if (array[j] < array[smallest])
{
smallest = j;
}
//原来假定的数组下标之后发生了改变
if (smallest != i)
{
int temp;

temp = array[i];
array[i] = array[smallest];
array[smallest] = temp;
}
}
}

System.out.println("选择升序排序为");
outPut(array);
}

/**
*选择降序排序
* @param array
*/
public static void selectDscending(int[] array)
{
for (int i = 0; i < array.length - 1; ++i)
{
int biggest = i;  //最大元素的下标假设为i
for (int j = i + 1; j < array.length; ++j)
{
if (array[j] > array[biggest])
{
biggest = j;
}

if (biggest != i)
{
int temp;

temp = array[i];
array[i] = array[biggest];
array[biggest] = temp;
}
}
}
System.out.println("选择降序排序为");
outPut(array);

}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: