1 /**
 2  *
 3  */
 4 package com.trfizeng.selectionsort;
 5
 6 /**
 7  * @author trfizeng 内部排序 选择排序—简单选择排序(Simple Selection Sort)
 8  */
 9 public class SimpleSelectionSort {
10
11     /**
12      * 每次选择一个最小记录放在前面去
13      */
14     public static int[] simpleSelectionSort(int[] array) {
15         // 对传来的待排序数组进行合法验证
16         if (array != null && array.length != 0) {
17             for (int i = 0; i < array.length; i++) {
18                 // 记录最小记录的下标
19                 int k = i;
20                 // 查找最小的记录 内层循环执行完将找到最小记录
21                 for (int j = i + 1; j < array.length; j++) {
22                     // 如果当前记录是比后面一个大的话就把后面一个下标赋给当前下标
23                     if (array[k] > array[j]) {
24                         k = j;
25                     }
26                 }
27                 // 把最小记录与当前记录进行兑换
28                 int temp = array[i];
29                 array[i] = array[k];
30                 array[k] = temp;
31             }
32         }
33         return array;
34     }
35 }

View Code

 1 package com.trfizeng.test;
 2
 3 import com.trfizeng.insertionsort.StraightInsertionSort;
 4 import com.trfizeng.selectionsort.SimpleSelectionSort;
 5
 6 /**
 7  * 测试类
 8  *
 9  * @author trfizeng
10  *
11  */
12 public class SortTest {
13     // 待排序数组
14     static int[] array = new int[] { 6, 1, 4, 10, 11, 8, 7, 1, 0 };
15
16     /**
17      * 直接插入排序法测试
18      */
19     public static void straightInsertionSortTest() {
20         System.out.print("待排序数组:[ ");
21         for (int i = 0; i < array.length; i++) {
22             System.out.print(array[i] + " ");
23         }
24         System.out.print("]   ");
25
26         array = StraightInsertionSort.straightInsertionSort(array);
27         System.out.print("排好序的数组:[ ");
28         for (int i = 0; i < array.length; i++) {
29             System.out.print(array[i] + " ");
30         }
31         System.out.print("]");
32     }
33
34     /**
35      * 选择排序
36      */
37     public static void simpleSelectionSort() {
38         System.out.print("待排序数组:[ ");
39         for (int i = 0; i < array.length; i++) {
40             System.out.print(array[i] + " ");
41         }
42         System.out.print("]   ");
43
44         array = SimpleSelectionSort.simpleSelectionSort(array);
45         System.out.print("排好序的数组:[ ");
46         for (int i = 0; i < array.length; i++) {
47             System.out.print(array[i] + " ");
48         }
49         System.out.print("]");
50
51     }
52
53     public static void main(String[] args) {
54         // SortTest.straightInsertionSortTest();
55
56         SortTest.simpleSelectionSort();
57
58     }
59 }

View Code

转载于:https://www.cnblogs.com/trfizeng/p/4307723.html

简单的选择排序(内部排序)相关推荐

  1. 10-9-堆排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第10章  内部排序 - 堆排序 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码 ...

  2. 10-12-顺序表地址排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版...

    课本源码部分 第10章  内部排序 - 顺序表地址排序 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版) ...

  3. 10-10-归并排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第10章  内部排序 - 归并排序 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源 ...

  4. 10-11-基数排序-内部排序-第10章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第10章  内部排序 - 基数排序 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源 ...

  5. 【数据结构(C语言)】数据结构-内部排序

    内部排序 文章目录 内部排序 一.概述 (1)排序定义 (2)稳定性 (3)内部排序和外部排序 (4)两种基本操作 (5)数据类型定义 二.分类 (1)插入排序 (2)交换排序 (3)选择排序 (4) ...

  6. 数据结构-考研难点代码突破(C/C++/Java排序算法,性能及其稳定性分析(内部排序))

    文章目录 1. 内部排序的基本种类 2. 插入排序 Ⅰ直接插入排序 性能与稳定性分析 Ⅱ 折半插入排序 性能与稳定性分析 Ⅲ 希尔排序 性能与稳定性分析 3. 交换排序 Ⅰ 冒泡排序 性能与稳定性分析 ...

  7. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  8. 数据结构排序算法 内部排序(冒泡、鸡尾酒、选择、简单插入、二分插入、快排、希尔、归并、堆排)C语言实现

    文章目录 排序 冒泡排序 鸡尾酒排序 选择排序: 简单插入排序: 二分插入排序 快速排序: 希尔排序: 归并排序: 堆排序: 排序 点击以下图片查看大图: 冒泡排序 1.比较相邻的元素,如果前一个比后 ...

  9. 对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。

    题目要求: (1)对以下6种常用的内部排序算法进行比较:起泡排序.直接插入排序.简单选择排序.快速排序.希尔排序.堆排序. (2)待排序表的表长不小于100:其中的数据要用伪随机数产生程序产生:至少要 ...

最新文章

  1. 限制input输入小数只能到3位或者只能输入正整数(兼容ios)
  2. G502使用计算机配置,解决方案:Logitech G502宏设置教程方法
  3. 谈中型项目下的编码技巧二
  4. 使用grep 在源码文件查找特定字符串
  5. Session.Abandon和Session.Clear有何不同
  6. POJ 1836 Alignment
  7. React中antd的按需引入+自定主题
  8. 银行不告诉的秘密,看完豁然大悟
  9. LeetCode 1980. 找出不同的二进制字符串
  10. 五款程序员专用辅助编程工具
  11. LeetCode —— 145. 二叉树的后序遍历【递归与迭代】(Python)
  12. EfficientNetV2:训练速度快了5~10x,更小,更快,精度更高的EfficientNet
  13. Spring : Spring 事务控制 设置手动回滚 TransactionAspectSupport
  14. 熊猫支持html5么,Steam疯狂周三特惠推荐:你给我看大熊猫,我就给你钱
  15. python程序字符串中字符排序_python字符串排序方法
  16. 完整且易读的微信小程序的注册页面(包含倒计时验证码、获取用户信息)
  17. android sqlite 打包 xe,Delphi XE使用SQLite3
  18. PowerShell抓取电脑序列号
  19. 菜鸟教程首页制作html5
  20. Windows10怎么样添加并设置为卓越性能模式

热门文章

  1. 【2015沈阳现场A】
  2. 3.2 matlab用if语句实现选择结构
  3. Intersection of Two Linked Lists
  4. 关于static变量,请选择下面所有说法正确的内容
  5. java字符串转日期_JAVA字符串转日期或日期转字符串
  6. 使用 pv 命令监控 linux 命令的执行进度
  7. TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
  8. 如何成长为一名优秀的Web开发人员
  9. junit jumpstart
  10. fedora15换主题