- 浏览: 171556 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (193)
- Axis2 (10)
- Andriod (2)
- Java (22)
- Eclipse (2)
- 程序人生 (3)
- Windows (1)
- Sql Server 2005/2008 (7)
- 健身 (2)
- Log4j (1)
- Ant (1)
- Fatjar (2)
- 国际化 (1)
- Linux (3)
- JDBC (1)
- Oracle (2)
- 各种报错 (4)
- SWT (5)
- Tomcat (2)
- 车辆管理 (1)
- SVN (2)
- Spring (5)
- 域名服务器 (0)
- HaoWaYa (1)
- FTP (1)
- 集散中心 (1)
- 专业知识 (1)
- 面试准备 (19)
- 设计模式 (22)
- Junit (1)
- 软件下载 (3)
- 深入理解Java虚拟机 (3)
- 数据结构 (4)
- 雅思 托福 (0)
- UML (1)
- Maven (1)
- CV (1)
- ServiceMix (1)
- 电子书 (5)
- Struts1/2 (4)
- DOM W3C DHTML (3)
- Jawr (1)
- LoadRunner (1)
- Java反编译 (0)
- 英语学习 (0)
- 技术书籍 (1)
- Cygwin (0)
- ibatis (1)
- 数据库 (1)
- jQuery (0)
- s (2)
- 源代码项目 (5)
- JSRs (0)
- JCP (0)
- XML (2)
- Dojo (3)
- Effective Java (1)
- 一站到底 (3)
- JavaScript (6)
- DB2 (1)
- 刷机 (1)
- 字符 (1)
- Dynamic Web Project (1)
- 股市日记 (1)
- 代码片段 (0)
- CSS (1)
- PDF (0)
- 英语口语 (1)
- 乒乓球 (1)
- 体检 (0)
- 送花 (0)
- 面试准备-再战江湖 (5)
- ddq (0)
- sss (0)
- ssssss (0)
- 2020面试 (0)
最新评论
-
samsongbest:
Copperfield 写道你的目标很远大,佩服~惭愧,都忘了 ...
人生目标 -
Copperfield:
你的目标很远大,佩服~
人生目标
1. 插入排序
算法描述: | 从左边开始增大序列,把右边的数插到左边排好序的数字当中,比左边大,比右边小。 |
稳定性: | 稳定 |
比较次数: | n(n-1)/2 |
适用场合: | 适用于节点个数比较少的场合。 |
package com.sam; public class InsertionSort { public static void insertSort(int[] a, int n) { int i, j; int t; for (i = 1; i < n; i++) { printArray(a); t = a[i]; for (j = i - 1; j >= 0 && t < a[j]; j--) a[j + 1] = a[j]; a[j + 1] = t; } } /** * @param args */ public static void main(String[] args) { int[] a = { 46, 26, 22, 68, 48, 42, 36, 84, 66 }; int n = 9; insertSort(a, n); printArray(a); } public static void printArray(int[] a) { for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(); } }
2. 选择排序
算法描述: | 向右边减小序列,在所有的数中找一个最小的排在最左边 |
稳定性: | 不稳定 |
比较次数: | n(n-1)/2 |
适用场合: | 适用于节点个数较少的场合。 |
package com.sam; public class SelectionSort { public static void selectionSort(int[] a, int n) { int i, j, k; int t; for (i = 0; i < n - 1; i++) { printArray(a); k = i; for (j = i + 1; j < n; j++) if (a[k] > a[j]) k = j; t = a[i]; a[i] = a[k]; a[k] = t; } } /** * @param args */ public static void main(String[] args) { int[] a = { 46, 26, 22, 68, 48, 42, 36, 84, 66 }; int n = 9; selectionSort(a, n); printArray(a); } public static void printArray(int[] a) { for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(); } }
3. 冒泡排序
算法描述: | 从上往下,大数往下沉,小数往上冒,排一次,最大数沉在最底下。 |
稳定性: | 稳定 |
比较次数: | n(n-1)/2 |
适用场合: |
package com.sam; public class BubbleSort { public static void bubbleSort(int[] a, int n) { int i, j, k; n--; while (n > 0) { j = 0; for (i = 0; i < n; i++) { if (a[i] > a[i + 1]) { k = a[i + 1]; a[i + 1] = a[i]; a[i] = k; j = i; } } printArray(a); n = j; } } /** * @param args */ public static void main(String[] args) { int[] a = { 46, 26, 22, 68, 48, 42, 36, 84, 66 }; int n = a.length; bubbleSort(a, n); } public static void printArray(int[] a) { for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(); } }
4. 快速排序
算法描述: | 第一个和最后一个比,找到比它小的数,不忙,再从左边找到比它大的数,然后从小到大,三个节点重新排序,再递归。 |
稳定性: | 不稳定 |
比较次数: | 1.4nlog2n |
适用场合: | 对拍好序的节点执行效率最差 |
package com.sam; public class QuickSort { public static void quick(int[] a, int low, int up) { int i, j, t; if (low < up) { i = low; j = up; t = a[low]; while (i != j) { while (i < j && a[j] > t) j--; if (i < j) a[i++] = a[j]; while (i < j && a[i] <= t) i++; if (i < j) a[j--] = a[i]; } a[i] = t; printArray(a); quick(a, low, i - 1); quick(a, i + 1, up); } } /** * @param args */ public static void main(String[] args) { int[] a = { 46, 26, 22, 68, 48, 42, 36, 84, 66 }; int n = a.length; quick(a, 0, 8); } public static void printArray(int[] a) { for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(); } }
保留行
- InnerSort_src.zip (9.8 KB)
- 下载次数: 0
发表评论
-
摩根面试全过程
2012-06-21 11:09 788http://hi.baidu.com/%D4%DA%C2%B ... -
ana from pwc
2012-05-09 17:06 0mei messon messon619@ ... -
SAP面试
2012-05-03 21:20 02个小时 3道代码题: 1. Shape, Square, ... -
二分查找法
2012-05-03 20:42 553aa package com.sam.searchalgor ... -
sap jd
2012-04-30 12:18 0W e are hiring developer for o ... -
面试电子书
2012-04-24 16:16 780面试电子书 -
聚集索引和非聚集索引的区别
2012-04-20 09:28 690http://www.cnblogs.com/flashicp ... -
code for citi
2012-04-19 17:18 0说一些你知道的runtime exception? 说一些 ... -
Apache Http Server和Tomcat 之区别
2012-04-19 09:29 598转自:http://blog.csdn.net ... -
ArrayList Victor LinkedList的区别
2012-04-18 13:43 1533ArrayList Victor Linked ... -
浅析Java抽象类和接口的比较
2012-04-18 09:58 665http://www.enet.com.cn/article/ ... -
Servlet生命周期与工作原理
2012-04-17 21:04 659http://www.cnblogs.com/cuiliang ... -
Spring mvc
2012-04-17 20:49 922http://hi.baidu.com/sxgxg/blog/ ... -
Tomcat内存溢出的原因
2012-04-17 20:38 656Tomcat内存溢出的原因 ... -
Statement和PreparedStatement之间的区别
2012-04-17 20:20 726http://hi.baidu.com/hi521/blog/ ... -
JAVA中String与StringBuffer的区别
2012-04-17 20:19 849http://blog.csdn.net/yirenti ... -
sse
2012-04-17 19:52 0Sr.Java 1. ... -
Java并发/多线程
2012-04-10 17:03 853Java多线程 实现线程的两种方法: a. 继承Threa ... -
23个设计模式
2012-03-29 14:18 813第一部分 接口型模式 1. Adapter( ... -
Java初始化的顺序
2012-03-28 16:19 680父类静态变量 子类静态变量 进入子类构造方法 进入父类构 ...
相关推荐
【Java实现数据结构内部排序】 在Java编程中,内部排序是指在内存中对一组数据进行排序的方法。这里介绍的是基于数组或链表的数据结构实现的几种常见内部排序算法:直接插入排序、折半插入排序、希尔排序和快速排序...
基数排序不适用于本文的 Java 代码展示,因为涉及到额外的逻辑和数据结构。 总结: 这些内部排序算法各有特点,适用于不同的场景。例如,快速排序在大多数情况下效率高,而归并排序则保证了稳定性。了解这些算法有...
文中提到了数据结构(Data Structures)和Java语言的结合,这表明文档可能涉及数据结构在Java中的实现方式,包括基本的结构如数组、链表、栈、队列、树和图等,以及它们的特性、操作方法和应用场景。 2. Java中的...
函数式编程是Java8 中的一种编程范式,它将函数作为一等公民,支持将函数作为参数传递、返回函数值和将函数作为数据结构的元素。 Comparator<T>接口 在Java8 中,Comparator<T>接口是函数式接口的一个示例。...
此外,课件可能还会涵盖数据结构在Java集合框架中的应用,如ArrayList、LinkedList、HashSet、HashMap等的内部实现原理,以及如何根据实际需求选择合适的数据结构。理解并熟练掌握这些内容对于提升编程能力、解决...
9. **排序算法**:在Java中实现的各种排序算法,如冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序,都是基于特定数据结构的优化操作。 10. **搜索算法**:深度优先搜索(DFS)和广度优先搜索(BFS)是...
在Java中,实现分页有多种方式,包括使用JSTL(JavaServer Pages Standard Tag Library)中的`<c:forEach>`和自定义标签。 首先,让我们了解一下JSTL的`<c:forEach>`标签。它是JSP标准标签库的一部分,用于遍历集合...
这里我们主要探讨的是使用Java语言实现的六种内部排序算法。内部排序是指在内存中完成的排序过程,它不涉及外部存储器交互。这六种排序算法可能包括常见的快速排序、归并排序、插入排序、选择排序、冒泡排序以及堆...
本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...
在Java中,这些数据结构和算法通常通过集合框架来实现,如ArrayList、LinkedList、Stack、Queue、TreeMap等类。深入理解这些类的内部原理和使用场景,可以提升代码质量和性能。同时,理解和运用设计模式,如工厂模式...
Java中,TreeSet和TreeMap实现了红黑树,而PriorityQueue内部使用了堆数据结构。 3. 图: 图是由节点(顶点)和连接节点的边构成,可以表示复杂的关系。图分为有向图和无向图,Java中没有直接提供图的实现,但可以...
Java是一种广泛使用的面向对象的编程语言,具有丰富的库支持,使得在Java中实现数据结构变得既方便又强大。在清华大学出版社出版的朱站立编著的《数据结构》一书中,作者深入浅出地讲解了数据结构的基本概念、设计与...
总结来说,Java实现类似C#的DataTable数据结构是通过对现有数据结构的组合和扩展来实现的,这需要理解DataTable的核心特性和需求,然后用Java的语法和设计模式来复现这些功能。通过这样的实践,开发者可以深入理解...
总之,学习和实践"Java数据结构实例"能帮助你深入理解数据结构的内部机制,提升编程思维,为解决实际问题打下坚实的基础。对于每一个数据结构,理解其特性,熟悉其操作,并通过编程实践加以巩固,是成为一名优秀Java...
刘小晶教授的课程可能涵盖了这些概念,并通过Java代码示例进行演示,帮助学生理解每种数据结构的内部工作原理和操作方法。这包括如何初始化、插入元素、删除元素、遍历结构以及解决实际问题。例如,用Java实现二分...
第3版 机械工业出版社<br> 教学内容和要求<br>知识点 重要程度 使用频度 难度<br>Java 入门 高 中 易<br>变量和运算符 高 高 中<br>控制结构 高 高 易<br>数组 高 高 中<br>方法 很高 高 中<br>封装 很高 很高 难...
通过编写代码,学生可以更好地理解数据结构的内部机制,例如如何在数组中进行查找、插入和删除操作,如何构建和遍历二叉树,如何实现堆排序或快速排序等经典算法。实验报告通常会包含具体的问题描述、解决方案、代码...