用JAVA语言实现选择排序法

1、思想

1.找到数组中最小的元素
2.将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)
3.在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。
4.如此往复,直到将整个数组排序

2、特点

1.运行时间和输入无关
2.数据移动是最少的

3.算法时间复杂度

O(n2)

4、代码

public int[] sort (int[] sourcearry) {
		//将参数里的数组复制到新声明的一个数组中
		int[] arr = Arrays.copyOf(sourcearry, sourcearry.length);
		//比较次数为N-1次
		for(int i=0;i<arr.length-1;i++) {
			int min = i;
			//每轮需要N-i次比较
			for(int j=i+1;j<arr.length;j++) {
				if(arr[j]<arr[min]) {
					//记录目前找到的最小元素的下标
					min = j;
				}
			}
			//找到的最小值与当前i位置元素值交换
			if(i!=min) {
				int tmp = arr[i];
				arr[i] = arr[min];
				arr[min] = tmp;
			}
		}
		return arr;
	}

你可能感兴趣的:(算法)