java学习之数组排序一:选择排序
在讲完java中数组定义的两种方式之外,这里需要讲一下对数组常用的方法,第一个就是排序。
加入我们现在有个数组:int[] arr = {12,87,34,3,98,33,103};
思路1:
1、首先拿数组当中的第一个数字与其他数字一一做比较,如果比第一个数字大,那么就两个元素调换下位置,如果小于或者等于就维持原来的状态。循环往复,直至确定第一个数字是这个数组当中的最小值。然后把索引为0的元素,放到一边,之后再用索引为1的元素与其他元素依次比较,如果大于索引1的位置的元素,那么两者互换下位置,如果小于或者等于那么则保持各自位置不变,之后在索引位置2的位置,确定剩下的数字当中是最小的,其他位置的元素也是按照这种排序方法。需要注意的是最后一个元素就不用比较了,肯定是最大的。

选择排序:
class SelectSort
{
public static void main(String[] args)
{
int[] arr = {12,87,34,39,134,4,45,8,21233,99};
printArr(arr);
selectSort(arr);
printArr(arr);
}
public static void selectSort(int[] arr){
for(int i = 0; i<arr.length-1; i++)
{
for(int a = i + 1; a<=arr.length-1 ; a++)
{
/**
* if(arr[i]>arr[a])
* {
* int temp = arr[i];
* arr[i] = arr[a];
* arr[a] = temp;
* }
*/
if(arr[i]>arr[a])
swap(arr,i,a);
}
}
}
public static void printArr(int[] arr)
{
System.out.print("[");
for(int i=0 ; i<arr.length ; i++){
System.out.print(arr[i]);
if(i<arr.length-1)
System.out.print(",");
}
System.out.print("]");
System.out.println();
}
public static void swap(int[]arr,int x, int y)
{
int temp;
if(arr[x]>arr[y])
{
temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}


浙公网安备 33010602011771号