选择排序-java实现
2016-07-10 16:17
399 查看
选择排序:
反复地将某一个特定的值放到它在列表中最终已经排好序的位置,从而完成对某一个值的排序。排序策略:
1:扫描整个列表找到最小值,将该值与列表的第一个值交换;2:扫描除第一个值以外的列表,找到最小值与列表第二个值交换
3:依次找到除已排序子集以外的值中的最小值,与排序子集的后一位交换;
4:重复第三步,直到整个列表排序完成。
例子:
初始:2 8 5 1 3step1:1 8 5 2 3 (选择最小的值1与第0位交换)
step2:1 2 5 8 3 (选择最小值2的与第1位交换)
step3:1 2 3 8 5 (选择最小值3的与第2位交换)
step4:1 2 3 5 8 (选择最小值5的与第3位交换)
step5:1 2 3 5 8 (选择最小值8的与第4位交换)
最终:1 2 3 5 8
Code:
/* *Created on 2016年7月10日 *Copyright 2016 Yong Cai Limited crop. All Rights Reserved * */ package org.cy.sort; public class SelectionSort { public static void main(String[] args) { String[] str = {"cc", "yy", "aa", "yong", "nba", "love"}; printArr(selectionSort(str)); } public static <T extends Comparable<? super T>> T[] selectionSort(T[] data){ int min; T tmp; int len = data.length; for(int index = 0;index < len; index++){ min = index; for(int scan = index + 1; scan < len; scan++){ if(data[scan].compareTo(data[min]) < 0){ min = scan; } } tmp = data[min]; data[min] = data[index]; data[index] = tmp; } return data; } public static <T> void printArr(T[] data){ int len = data.length; for(int i = 0; i < len; i++){ System.out.print(data[i] + " "); } System.out.println(); } }
相关文章推荐
- Java数据结构及算法实例:选择排序 Selection Sort
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- Java经典算法汇总之选择排序(SelectionSort)
- PHP简单选择排序算法实例
- VC++实现选择排序算法简单示例
- java实现选择排序算法
- Java排序算法总结之选择排序
- Java实现选择排序算法的实例教程
- Python选择排序、冒泡排序、合并排序代码实例
- 用php实现选择排序的解决方法
- python选择排序算法的实现代码
- 图文讲解选择排序算法的原理及在Python中的实现
- 图文讲解选择排序算法的原理及在Python中的实现
- 数据结构与算法学习-简单排序算法之冒泡排序与选择排序
- 排序算法 java版本
- 选择排序
- 关于问答区里面的一个算法问题
- 使用Java完成《算法导论》习题2.2-2
- 排序算法
- sell学习第二课-选择排序