博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
选择排序(JAVA)
阅读量:6835 次
发布时间:2019-06-26

本文共 1278 字,大约阅读时间需要 4 分钟。

hot3.png

package org.rev.algorithm;/** * 选择排序,算法复杂度O(n^2),算法步骤如下: *  * 1. 对于一组数列,选出最小的数和第一个位置的数交换。 *  * 2. 在剩余的数中,选出最小的数,与第二个位置的数交换。 *  * 3. 如此循环,直到倒数第二个数与最后一个数比较位置。 *  */public class SelectionSort {  public static void main(String[] args) {    int[] data = {39, 11, 38, 97, 86, 37, 12, 4, 51, 18};    SelectionSort ss = new SelectionSort();    ss.selectionSort(data);    System.out.println("排序之后:");    ss.printData(data);  }  /**   * 选择排序,每次都遍历,都把最小的数放在前面。   *    * @param data 待排序的数组   */  public void selectionSort(int[] data) {    for (int i = 0; i < data.length; i++) {      int min = i; // 记录最小值的索引      for (int j = i + 1; j < data.length; j++) { // 在剩余的待排序数列中找到最小的数        if (data[j] < data[min]) {          min = j; // 找出最小值的索引        }      }      // 如果最小值的位置发生了变化则交换      if (min != i) {        swap(data, i, min);      }      System.out.print("第" + (i + 1) + "次后的顺序:\t");      printData(data);    }  }  /*   * 交换数组中两个元素的位置   */  private void swap(int[] data, int i, int min) {    int tmp = data[i];    data[i] = data[min];    data[min] = tmp;  }  /*   * 打印输出数组中的数据   */  private void printData(int[] data) {    for (int i = 0; i < data.length; i++) {      System.out.print(data[i] + "\t");    }    System.out.println();  }}

转载于:https://my.oschina.net/xiaoxishan/blog/374959

你可能感兴趣的文章
NGFW终于OK了
查看>>
Vim最常用命令总结
查看>>
网络端口速率设置有讲究
查看>>
我的友情链接
查看>>
scp自动写密码脚本
查看>>
mysql如何赋权限
查看>>
去除CS0016: 未能写入输出文件错误提示
查看>>
IBM System x3250 M3 做raid1及安装系统指导
查看>>
傻瓜式的ARP处理方法
查看>>
raw格式分区.提示未格式化的数据恢复方法
查看>>
Ubuntu16.0.4.1安装lnmp
查看>>
张荣昌:博客之旅的第一天
查看>>
linux下apache+tomcat集群详细配置
查看>>
php冒泡排序
查看>>
赋予SCOTT用户登录em的权限
查看>>
Dcos环境步骤搭建
查看>>
更改MySQL数据文件目录位置
查看>>
回调函数
查看>>
【安装zabbix3.4之2-php安装】centos7 安装php7.1 编译安装
查看>>
创建完虚拟桌面后提示“在等待设置的虚拟桌面启动时,远程桌面虚拟化主机代理...
查看>>