选择排序之直接选择排序
来源:互联网 发布:复杂网络算法matlab 编辑:程序博客网 时间:2024/06/08 23:07
选择排序之直接选择排序
直接选择排序思想:第一趟从n个元素的数据序列中选出最小/大的元素放到最前/后的位置,下一趟从n-1个元素中选出最小/大的元素并放到次前/后的位置,如此循环,经过n-1趟完成排序。
序列{38,97,26,19,38*,15}的直接选择排序过程如下图:
直接选择排序算法代码如下:
import java.util.Scanner;public class SelectSort {public static void selectSort(int[] keys) {for (int i = 0; i < keys.length - 1; i++) {// 遍历n-1趟int min = i;// 标记最小位置for (int j = i + 1; j < keys.length; j++) {// 从i+1之后数列中查找更小的数if (keys[j] < keys[min]) {min = j;}}if (min != i) {// 如果不同,则交换位置keys[i] = keys[min] ^ keys[i];keys[min] = keys[i] ^ keys[min];keys[i] = keys[i] ^ keys[min];}}}public static void main(String[] args) {Scanner s = new Scanner(System.in);int[] n = new int[10];for (int i = 0; i < n.length; i++) {n[i] = s.nextInt();}selectSort(n);// 调用选择排序算法for (int i = 0; i < n.length; i++) {System.out.print(n[i] + " ");}}}
直接选择排序时间复杂度O(n2),最好情况O(n2),最坏情况O(n2),空间复杂度O(1)
是不稳定排序。
0 0
- 排序之直接选择排序
- 排序之直接选择排序
- 排序之直接选择排序
- 选择排序之直接选择排序
- 选择排序之直接选择排序
- 选择排序之直接选择排序
- 选择排序之直接选择排序
- 选择排序之直接选择排序
- 选择排序之直接选择排序
- 选择排序之直接选择排序
- 选择排序之直接选择排序
- 选择排序-直接选择
- 选择排序--直接选择排序
- 选择排序 - 直接选择排序
- 选择排序-直接选择排序
- 选择排序-直接选择排序
- 算法之直接选择排序
- 选择排序之直接选择(Java)
- ocp-218
- linux解压.tar.gz
- BaiduMap SDK开发时只能显示网格不能显示地图的解决办法
- Android 孵化之路(一)——搭建开发环境
- ocp-219
- 选择排序之直接选择排序
- ocp-220
- NSCopying和NSMutableCopying协议
- 在Unity中添加UnityAds广告
- 服务器端如何判断客户端是不是手机
- 剑指offer—构建乘积数组
- MyEclipse问题收集
- Unity3D中用VS2012打开C#代码的设置
- 【自考】数据结构导论