1 public class QuickSort {
  2
  3     //插入排序
  4     //插入前的序列是排序好的,将新插入的数值与之前的数值比较
  5     //直到找到合适的位置
  6     public static int[] quickSort(int[] arr){
  7
  8         for(int j=1;j<arr.length;j++){
  9             int key = arr[j];
 10             int i = j-1;
 11
 12             while(i>=0 && arr[i]<key){
 13                 arr[i+1] = arr[i];
 14                 i = i -1;
 15                 arr[i+1] = key;
 16             }
 17         }
 18
 19         return arr;
 20     }
 21
 22     //查询一个值V是否在数组内,如果在数组内输出下标,否则输出‘NIL’
 23     public static String quickSortIn(int[] arr,int V){
 24         List<Integer> list = new ArrayList<Integer>();
 25         for(int i = 0;i<arr.length;i++){
 26             if(V == arr[i]){
 27                 list.add(i);//如果V在数组内,将下标存入list
 28             }
 29         }
 30
 31         if(list != null && !list.isEmpty()){//如果list不为空,循环输出
 32
 33             StringBuilder str = new StringBuilder("");
 34             for(int i = 0; i < list.size(); i++){
 35                 str.append("V = "+"arr["+list.get(i)+"]  ");
 36             }
 37             return str.toString();
 38
 39         }else{//如果list为空,输出‘NIL’
 40             return "NIL";
 41         }
 42     }
 43
 44     //选择排序
 45     public static void selectSort(int[] a) {
 46         int i;        // 有序区的末尾位置
 47         int j;        // 无序区的起始位置
 48         int min;    // 无序区中最小元素位置
 49
 50         for(i=0; i<a.length; i++) {
 51             min=i;
 52
 53             // 找出"a[i+1] ... a[n]"之间的最小元素,并赋值给min。
 54             for(j=i+1; j<a.length; j++) {
 55                 if(a[j] < a[min])
 56                     min=j;
 57             }
 58
 59             // 若min!=i,则交换 a[i] 和 a[min]。
 60             // 交换之后,保证了a[0] ... a[i] 之间的元素是有序的。
 61             if(min != i) {
 62                 int tmp = a[i];
 63                 a[i] = a[min];
 64                 a[min] = tmp;
 65             }
 66         }
 67     }
 68
 69     //查询数组的最大值
 70     public static int selectMax(int[] arr){
 71         int max = arr[0];
 72         for(int i =0;i<arr.length;i++){
 73             if(arr[i]>max){
 74                 max = arr[i];
 75             }
 76         }
 77         return max;
 78     }
 79
 80     //查询数组的最小值
 81     public static int selectMin(int[] arr){
 82         int min = arr[0];
 83         for(int i =0;i<arr.length;i++){
 84             if(arr[i]<min){
 85                 min = arr[i];
 86             }
 87         }
 88         return min;
 89     }
 90
 91
 92     public static void main(String[] args) {
 93         int[] aaa = {1,5,2,3,4,55,11,22,33,4,22,1};
 94         int[] bbb = {31,41,59,26,41,58};
 95         selectSort(bbb);
 96         for(int a : bbb){
 97             System.out.print(a+"  ");
 98         }
 99         System.out.println();
100         System.out.println(quickSortIn(bbb,41));
101         System.out.println(selectMin(bbb));
102     }
103 }

转载于:https://www.cnblogs.com/maduar/p/4495705.html

java代码测试---插入排序和选择排序相关推荐

  1. 插入排序、选择排序、快速排序以及归并排序(附Python代码)

    排序算法基本原理以及复杂度等知识点可跳转至该博客了解https://www.cnblogs.com/onepixel/p/7674659.html ,本博客主要对排序算法性能进行对比以及记录对比过程发 ...

  2. 排序算法:冒泡排序、插入排序、选择排序、希尔排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...

  3. python版 常用排序算法 思路加详解 冒泡排序、快速排序、插入排序、选择排序

    注:这里所有排序操作都以从小到大排列为例,想要从大到小排的自行修改代码即可 目录 一.冒泡排序 思路: 步骤: 解析: 二.快速排序 思路: 步骤: 代码: 三.插入排序 思路: 代码: 四.选择排序 ...

  4. [数据结构]用插入排序和选择排序的思想实现优先级队列

    一.问题概述 优先级队列的定义: 优先级队列不同于普通的队列,普通的队列具有先进先出的原则,而优先级队列是选择优先级最高的先出队.那么,如何模拟实现优先级队列呢?在这里,我们将较大的值作为优先级较高的 ...

  5. 数据结构与算法:冒泡排序、插入排序、选择排序

    排序算法太多了,有很多可能你连名字都没听说过,比如猴子排序.睡眠排序.面条排序等.本文只众多排序算法中的一小撮,也是最经典的.最常用的:冒泡排序.插入排序.选择排序.归并排序.快速排序.计数排序.基数 ...

  6. libsvm java 实例_LibSvm流程及java代码测试

    使用libSvm实现文本分类的基本过程,此文参考 使用libsvm实现文本分类 对前期数据准备及后续的分类测试进行了验证,同时对文中作者的分词组件修改成hanLP分词,对数字进行过滤,仅保留长度大于1 ...

  7. 请插入多卷集的最后一张磁盘_聊一聊插入排序和选择排序

    简介 插入排序和比较排序是排序算法中比较基础和简单的两种,其时间复杂度均为 ,在分析算法时间复杂度时,我们往往会只会分析比较开销,但是交换开销也确实存在.这里我将综合比较开销和交换开销,来分析一下插入 ...

  8. 简单的Java代码测试样例设计

    简单的Java代码测试样例设计 函数一 public static int findLast(int[] x, int y) {for (int i = x.length - 1; i > 0; ...

  9. Java冒泡排序原理速记,选择排序原理速记

    Java冒泡排序原理速记,选择排序原理速记 冒泡排序原理分析: 冒泡排序从左往右两两比较:保护右边的排序好的元素(比较直接交换元素). 选择排序原理: 选择排序从左往右依次比较:保护左边排序好的元素( ...

最新文章

  1. linux 硬链接和软链接
  2. 使用async关键字进行TCP server的连接
  3. Flutter——限制TextField只能输入汉字或英文字母或数字,并限制输入最多中文10字符,英文20字符
  4. yolov3中如何进行聚类得到anchor box的
  5. SOA的关键是什么?
  6. [转载]JXTA Platform JAVA参考实现源代码分析系列文章(2)
  7. 2008 r2 php mysql_Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程
  8. Java毕业设计-疫情防控系统
  9. 全面理解 DNS 及 HTTPDNS
  10. 第一篇 -- 《每天读一点经济学常识 》 --于台风
  11. 训练深度学习模型时电脑自动重启
  12. 传统安防企业资本运作:找准定位、创新为本
  13. [转载] 七龙珠第一部——第111话 龟仙人最后的魔封波
  14. python图片水印
  15. 读书笔记:读《知道做到》学“知行合一”
  16. python 将小图放入较大的白色或黑色背景图片
  17. 【Python】用OpenCC将繁体字转为简体字
  18. 前端保留两位有效数字_js保留两位小数方法总结
  19. java 手机验证码
  20. LTE TDD在未来4G技术标准中的位置

热门文章

  1. nodejs-- vuex中mapActions
  2. 【实数二分/前缀和维护】Best Cow Fences
  3. NVIDIA助力SiemensPLMSoftware“工业4.0创新实验室”,携手推进中国制造创新之路
  4. vue用阿里云oss上传图片使用分片上传只能上传100kb以内的解决办法
  5. 2016年学习Linux决心书(老男孩教育在线课程班第二期)
  6. HTML5实现Word中文字全环绕图片效果
  7. 多处理机的进程调度方式
  8. jupyter notebook代码导出_Jupyter Notebook导出包含中文的pdf_亲测有效
  9. Python 内置模块之 时间模块 datetime
  10. 特别慢_背什么都特别慢,该怎么提高记忆力?