保存路径:C:\Users\10198\Desktop\java\TM\sl\5\13
直接选择排序算法实例
主体算法程序代码java:
public void sort(int[] array) {
int index;
for (int i = 1; i < array.length; i++) {
index = 0;
for (int j = 1; j <= array.length - i; j++) {
if (array[j] > array[index]) {
index = j;
}
}
// 交换在位置array.length-i和index(最大值)上的两个数
int temp = array[array.length - i]; // 把第一个元素值保存到临时变量中
array[array.length - i] = array[index]; // 把第二个元素值保存到第一个元素单元中
array[index] = temp; // 把临时变量也就是第一个元素原值保存到第二个元素中
}
试数:(方便看懂算法)我就像个计算机@~@
1->
int[] array = { 63, 4, 24, 1, 3, 15 };
i = 1 i<array.length(6) index= 0
j = 1 j<=array.length - i(6-1=5) 成立
array[j=1] >array[index=0]
4 63 不成立
j= 2 j<=array.length - i(2<=5)成立
array[j=2] >array[index=0]
24 63 不成立
j= 3 ...
交换在位置array.length-i和index(最大值)上的两个数
交换array[4]与array[0]
int[] array = { 63, 4, 24, 1, 3, 15 };
int[] array = { 15, 4, 24, 1, 3, 63 };
2->
i=2 i<5 成立 index = 0
j=1 ; j<=6-i=4 成立
array[1] > array[0]
4 15 不成立
j=2; j<4 成立
array[2] > array[0]
24 15 成立
index = 2
j=3 ; j<= array.length - i=4 成立
array[3]>array[2]
1 24 不成立
j=4 成立成立
交换在位置array.length-i和index(最大值)上的两个数
交换array[4]和array[3]
int[] array = { 15, 4, 24, 1, 3, 63 };
int[] array = { 15, 4, 3, 1, 24, 63 };
不想再算了。。。直接上结果(仅供参考)
第三次:int[] array = { 1, 4, 3, 15, 24, 63 };
第四次:int[] array = { 1, 3, 4, 15, 24, 63 };
第五次:int[] array = { 1, 3, 4, 15, 24, 63 };