最近在看vamei君的

纸上谈兵: 排序算法简介及其C实现

一直对算法这块理解不好,所以跟着vamei君写一写,vamei君的博客也是非常赞,也在此表示感谢~

 1 package com.sort;
 2
 3 /**
 4  * java实现几种排序
 5  * @author quxiaozha
 6  *
 7  */
 8
 9
10 public class MySort {
11     //插入排序
12     public static int[] insert_sort(int[] a){
13         int i,j;
14 //        long start,end;
15 //        start=System.nanoTime();
16         for(j = 1; j < a.length; j++){
17             i = j-1;
18             while((i>=0)&&(a[i+1]<a[i])){
19                 swap(a, i+1, i);
20                 i--;
21             }
22         }
23 //        end=System.nanoTime();
24 //        System.out.println("排序使用时间:"+(end-start)+" ns");
25         return a;
26
27     }
28
29     //冒泡排序
30     public static int[] bubble_sort(int[] a){
31         int i,j;
32         int sign;
33         for(j=0; j<a.length-1; j++){
34             sign = 0;
35             for(i = a.length-1; i>j; i--){
36                 if(a[i-1] > a[i]){
37                     sign = 1;
38                     swap(a, i-1, i);
39                 }
40             }
41             if(sign == 0){
42                 break;
43             }
44         }
45         return a;
46     }
47
48
49     public static void printArray(int[] array) {
50         for (int i = 0; i < array.length; i++) {
51              System.out.print(array[i]);
52              if (i != array.length - 1) {
53               System.out.print(",");
54              }
55         }
56         System.out.println();
57    }
58
59     public static int[] swap(int[] a, int from, int to){
60 //        System.out.println(from+"&&&&"+to);
61         if(from<0||from>a.length-1||to<0||to>a.length-1||from == to){
62             Exception e = new Exception("数据下标越界");
63             try {
64                 throw e;
65             } catch (Exception e1) {
66                 e1.printStackTrace();
67             }
68         }
69         int temp = a[from];
70         a[from] = a[to];
71         a[to] = temp;
72         return a;
73     }
74
75     public static void main(String[] args){
76         int[] a={49,38,65,97,76,13,27,49,78,34,12,64,1};
77 //        int[] a={49,38,65};
78         System.out.println("排序前的数组:");
79         printArray(a);
80
81         System.out.println("插入排序后的数组:");
82         printArray(insert_sort(a.clone()));
83
84         System.out.println("冒泡排序后的数组:");
85         printArray(bubble_sort(a.clone()));
86
87     }
88 }

转载于:https://www.cnblogs.com/quxiaozha/p/5872683.html

插入排序和冒泡排序算法JAVA实现相关推荐

  1. 冒泡排序算法 Java 实现过程及详解

    冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已 ...

  2. 冒泡排序算法 (JAVA)

    冒泡排序时间复杂度那么高,为什么还有存在意义吗 如果序列是用数组保存的,那么冒泡排序的意义确实不大.但如果序列是用链表保存的话,因为冒泡排序是相邻两个元素进行比较,那么我们只需记住相邻两个元素的指针即 ...

  3. java语言冒泡排序法_Java实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等...

    本文实现了八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 .快速排序.归并排序.堆排序和LST基数排序 首先是EightAlgorithms.java文件,代码如下: import jav ...

  4. 【Java】八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序

    这篇文章主要介绍了Java如何实现八个常用的排序算法:插入排序.冒泡排序.选择排序.希尔排序 .快速排序.归并排序.堆排序和LST基数排序,需要的朋友可以参考下 本文实现了八个常用的排序算法:插入排序 ...

  5. java排序算法(插入排序,冒泡排序,选择排序)

    java排序算法(插入排序,冒泡排序,选择排序) 先了解原理,然后自己跟着敲一下,加深印象 CMD编译命令:javac -encoding utf-8 SortList.java && ...

  6. java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序...

    算法是在有限步骤内求解某一问题所使用的一组定义明确的规则.通俗点说,就是计算机解题的过程.在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法.前者是推理实现的算法,后者是操作实现的算法. ...

  7. 【简单排序算法】:简单选择排序、直接插入排序和冒泡排序

    [简单排序算法]:简单选择排序.直接插入排序和冒泡排序 简单选择排序: 原理:设所排序序列的记录个数为n.i取1,2,-,n-1,每次从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出最小的记录 ...

  8. 冒泡排序java代码_面试官问我插入排序和冒泡排序哪个更牛逼?

    (给算法爱好者加星标,修炼编程内功) 来源:小鹿动画学编程,作者:小鹿同学 写在前边 排序对于每个开发者来讲,都多多少少知道几个经典的排序算法,比如我们之前以动画形式分享的冒泡排序,也包括今天要分享的 ...

  9. java里冒泡排序编程案例_java编程题:用Java实现一个冒泡排序算法

    /** * java编程题:用Java实现一个冒泡排序算法 */ public class Test12 { public static void main(String[] args) { int[ ...

最新文章

  1. 因论文《致谢》走红全网的中科院博士,如今已是腾讯大佬!
  2. tomcat基本使用和超图基本jsp例子
  3. 软件测试报告重点审核点有哪些,软件测试-测试报告.doc
  4. 在Tomcat下http协议转https协议
  5. python mysql操作封装库_python封装mysq操作,进行数据库的增删改
  6. 不懂别瞎搞!Redis 性能优化的 13 条军规!
  7. python怎么导出程序_[272]如何把Python脚本导出为exe程序
  8. join和子查询效率_SparkSQL连接查询中的谓词下推处理(上)
  9. 如何终止线程的运行(C/C++)
  10. Bean的六种作用域
  11. cornell movie-dialogs corpus 康奈尔大学电影对话语料介绍及下载 可用于dialog,chatbot
  12. 简单说from_tensor_slices()函数
  13. 去掉win7快捷方式箭头及修复锁定到任务栏失效
  14. 什么是 promise?
  15. 杨强教授漫谈《西部世界》、生成式对抗网络及迁移学习
  16. 2023北京影视技术设备展览会
  17. 计算机组装机配置单2019,2019年电脑主流配置
  18. mybatis提示XXX字段没有getter方法
  19. 中国-8月两轮车市场加速增长(+7%)
  20. 来了来了:Revit内建模型的基础教学

热门文章

  1. 半径为r的均匀带电球体_半径为R的均匀带电球面,总带电量为Q,设无穷远处的电势为零,则距离球心为r(r=R)的P点处的电场强度的大小和电势为...
  2. 6年Java程序员年薪60W,这些年我都爬过哪些坑(2021年终总结)
  3. (基础)HTML文档结构知识点讲解
  4. 地球那么大的开放世界游戏怎么做?腾讯云高级架构师为开发者设计了一套方案
  5. pyecharts第十节、地图(二、中国地图)
  6. preg_match_all用法
  7. PHP foreach遍历数组(多种方式)
  8. Java的二十三种设计模式(原型模式(Prototype))
  9. URI概念的简单介绍
  10. linux简单快速启用web