java面试题8--数组高级-选择排序
2016-08-06 16:30
246 查看
数组排序之选择排序:
* 选择排序基本思路:
从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处
运行结果:
* 选择排序基本思路:
从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处
package sort; public class SelectSort { public static void selectSort(int [] arr){ // 外循环控制从数组第一个元素开始遍历,直到length-1(倒数第2)个元素 for(int x=0; x<arr.length-1; x++){ System.out.print("当前正在为第"+(x+1)+"个元素(从1开始)寻找最小值,"); // 内循环控制从x开始,把后面的最小的拉到arr[x]处来 for(int y=x+1;y<arr.length;y++){ if(arr[x]>arr[y]){ System.out.println("找到比"+arr[x]+"小的值"+arr[y]+",交换"); int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } System.out.println("第"+(x+1)+"个元素归位后的结果:"); printArray(arr); } } public static void printArray(int [] arr){ System.out.print("["); for(int x=0;x<arr.length;x++){ if(x==arr.length-1){ System.out.print(arr[x]+"]"); System.out.println(); }else{ System.out.print(arr[x]+", "); } } } /** * @param args */ public static void main(String[] args) { int [] a = new int[]{10 ,9, 8, 7, 6, 5, 4, 3, 2, 1}; System.out.print("开始比较"); printArray(a); selectSort(a); System.out.print("结束比较"); printArray(a); } }
运行结果:
开始比较[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 当前正在为第1个元素(从1开始)寻找最小值,找到比10小的值9,交换 找到比9小的值8,交换 找到比8小的值7,交换 找到比7小的值6,交换 找到比6小的值5,交换 找到比5小的值4,交换 找到比4小的值3,交换 找到比3小的值2,交换 找到比2小的值1,交换 第1个元素归位后的结果: [1, 10, 9, 8, 7, 6, 5, 4, 3, 2] 当前正在为第2个元素(从1开始)寻找最小值,找到比10小的值9,交换 找到比9小的值8,交换 找到比8小的值7,交换 找到比7小的值6,交换 找到比6小的值5,交换 找到比5小的值4,交换 找到比4小的值3,交换 找到比3小的值2,交换 第2个元素归位后的结果: [1, 2, 10, 9, 8, 7, 6, 5, 4, 3] 当前正在为第3个元素(从1开始)寻找最小值,找到比10小的值9,交换 找到比9小的值8,交换 找到比8小的值7,交换 找到比7小的值6,交换 找到比6小的值5,交换 找到比5小的值4,交换 找到比4小的值3,交换 第3个元素归位后的结果: [1, 2, 3, 10, 9, 8, 7, 6, 5, 4] 当前正在为第4个元素(从1开始)寻找最小值,找到比10小的值9,交换 找到比9小的值8,交换 找到比8小的值7,交换 找到比7小的值6,交换 找到比6小的值5,交换 找到比5小的值4,交换 第4个元素归位后的结果: [1, 2, 3, 4, 10, 9, 8, 7, 6, 5] 当前正在为第5个元素(从1开始)寻找最小值,找到比10小的值9,交换 找到比9小的值8,交换 找到比8小的值7,交换 找到比7小的值6,交换 找到比6小的值5,交换 第5个元素归位后的结果: [1, 2, 3, 4, 5, 10, 9, 8, 7, 6] 当前正在为第6个元素(从1开始)寻找最小值,找到比10小的值9,交换 找到比9小的值8,交换 找到比8小的值7,交换 找到比7小的值6,交换 第6个元素归位后的结果: [1, 2, 3, 4, 5, 6, 10, 9, 8, 7] 当前正在为第7个元素(从1开始)寻找最小值,找到比10小的值9,交换 找到比9小的值8,交换 找到比8小的值7,交换 第7个元素归位后的结果: [1, 2, 3, 4, 5, 6, 7, 10, 9, 8] 当前正在为第8个元素(从1开始)寻找最小值,找到比10小的值9,交换 找到比9小的值8,交换 第8个元素归位后的结果: [1, 2, 3, 4, 5, 6, 7, 8, 10, 9] 当前正在为第9个元素(从1开始)寻找最小值,找到比10小的值9,交换 第9个元素归位后的结果: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 结束比较[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
相关文章推荐
- JAVA基础再回首(十一)——数组高级(冒泡排序和选择排序)、Arrays类、基本类型包装类、Integer类
- Java数组排序(冒泡,选择,插入,希尔)
- Java数组排序总结(冒泡,选择,插入,希尔)
- (Java)数组的选择排序法和二分查找法实现
- java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)
- 【转】Java数组排序总结(冒泡,选择,插入,希尔)
- 浅谈java中整型数组选择排序的思想
- Java基础04:选择排序;冒泡排序;折半查找;二位数组
- java数组——直接选择排序
- Java数组排序总结(冒泡,选择,插入,…
- [Java]数组排序-选择排序 冒泡排序 插入排序
- Java-数组排序(选择,冒泡,插入)
- java语言基础数组选择排序从小到大-作者:逝秋
- java数组选择排序
- Java实现数组排序总结篇(冒泡,选择,插入,希尔)
- Java数组排序总结(冒泡,选择,插入,希尔)
- Java数组排序(插入,选择,冒泡)+显示排序时间
- 黑马程序员java学习— 数组的选择排序和冒泡排序
- java基础学习记录之数组选择排序的学习与练习二
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)