保存路径: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 };
|