- 浏览: 161965 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 754http://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 517aa package com.sam.searchalgor ... -
sap jd
2012-04-30 12:18 0W e are hiring developer for o ... -
面试电子书
2012-04-24 16:16 734面试电子书 -
聚集索引和非聚集索引的区别
2012-04-20 09:28 653http://www.cnblogs.com/flashicp ... -
code for citi
2012-04-19 17:18 0说一些你知道的runtime exception? 说一些 ... -
Apache Http Server和Tomcat 之区别
2012-04-19 09:29 567转自:http://blog.csdn.net ... -
ArrayList Victor LinkedList的区别
2012-04-18 13:43 1500ArrayList Victor Linked ... -
浅析Java抽象类和接口的比较
2012-04-18 09:58 632http://www.enet.com.cn/article/ ... -
Servlet生命周期与工作原理
2012-04-17 21:04 633http://www.cnblogs.com/cuiliang ... -
Spring mvc
2012-04-17 20:49 886http://hi.baidu.com/sxgxg/blog/ ... -
Tomcat内存溢出的原因
2012-04-17 20:38 628Tomcat内存溢出的原因 ... -
Statement和PreparedStatement之间的区别
2012-04-17 20:20 683http://hi.baidu.com/hi521/blog/ ... -
JAVA中String与StringBuffer的区别
2012-04-17 20:19 812http://blog.csdn.net/yirenti ... -
sse
2012-04-17 19:52 0Sr.Java 1. ... -
Java并发/多线程
2012-04-10 17:03 815Java多线程 实现线程的两种方法: a. 继承Threa ... -
23个设计模式
2012-03-29 14:18 786第一部分 接口型模式 1. Adapter( ... -
Java初始化的顺序
2012-03-28 16:19 645父类静态变量 子类静态变量 进入子类构造方法 进入父类构 ...
相关推荐
java实现数据结构内部排序.pdf
第3版 机械工业出版社<br> 教学内容和要求<br>知识点 重要程度 使用频度 难度<br>Java 入门 高 中 易<br>变量和运算符 高 高 中<br>控制结构 高 高 易<br>数组 高 高 中<br>方法 很高 高 中<br>封装 很高 很高 难...
本项目主要使用Java实现各种经典常用数据结构及其算法,包括但不仅限于链表、栈,队列,树,图等经典数据结构。 八大排序算法及其实现,具体包括直接插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序...
去笔试被鄙视了,回来复习数据结构,把排序算法用JAVA写了一遍,不要资源分攒RP,下次笔试一定要过啊^_^
设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 [需求分析] (1)对起泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较; (2)待排序表的表长不小于100...
其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为 FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:<#if (x>y)> ...
算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间...学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
大二学数据结构的课设(java版) 做得很简单 见笑了 包括背包问题的求解,、内部排序算法的性能分析、停车厂模拟管理程序的设计与实现。
内部排序的方法 二、实验目的 通过实验,帮助学生由浅入深地掌握各种简单排序和高级排序的基本思想,让他们比较其性能,也让他们更好地理解希尔排序和快速排序的方法。 1.任意输入一个数组并利用简单选择排序算法...
7.9 内部排序小结 7.10 外部排序 7.11 参考文献和选读材料 第8章 Hash法 8.1 引言 8.2 静态Hash法 8.3 动态Hash法 8.4 Bloom滤波器 8.5 参考文献和选读材料 第9章 优先队列 9.1 单端优先队列和双端优先...
逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树...学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间...学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
算法与数据结构它们分别涵盖了以下主要内容: 数据结构(Data Structures): ...学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间...学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
算法与数据结构它们分别涵盖了以下主要内容: 数据结构(Data Structures): ...学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间...学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
算法与数据结构它们分别涵盖了以下主要内容: 数据结构(Data Structures): ...学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
不相交集类8.1 等价关系8.2 动态等价性问题8.3 基本数据结构8.4 灵巧求并算法8.5 路径压缩8.6 路径压缩和按秩求并的最坏情形8.7 一个应用小结练习题参考文献第9章 图论算法9.1 若干定义9.2 拓扑排序9.3 最短路径...