- 浏览: 442630 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (355)
- Java (180)
- Jquery (18)
- Js (27)
- Mysql (3)
- Windows (6)
- C++ (1)
- Css (9)
- English (35)
- Sqlserver (1)
- Database (3)
- Git (1)
- Linux (5)
- Solr (1)
- Fun (5)
- C (2)
- Test (1)
- Math (2)
- Nlp (8)
- Algorithm (7)
- Regex (9)
- Other (5)
- Html (8)
- ASP (4)
- Access (2)
- Servlet (1)
- Lucene (3)
- Uml (2)
- Struts (19)
- Hibernate (5)
- Jstl (1)
- El (1)
- Python (1)
- SSH (2)
- Spring (1)
- Tomcat (4)
- Jsp (2)
- SE (1)
- Android (2)
- Excel (1)
- Ehcache (1)
- Flash (1)
- Pattern (1)
- Hadoop (1)
最新评论
-
huguyue1988:
怎么样可以判断访问的音乐加载完成了呢?我的界面要加载多个这个的 ...
jPlayer的一些用法 -
永不悔你:
[color=yellow][/c[*][img][/img] ...
MyEclipse 9.0运行速度优化 -
tianyalinfeng:
这个教程里都有吧
jquery 筛选器 -
mengfei86:
你太牛了,我找了半天的问题,你一句代码搞定了,谢了,id^, ...
jquery 筛选器
public class SortUtil {
public static void main(String[] args) {
int[] data = { -1, 1, 42, 22, 61, 44, 12, 34 };// data[0]是辅助空间
System.out.print("the original array:");
print(data);
// insertSort(data);
// bInsertSort(data);
// bubbleSort(data);
quickSort(data, 1, data.length - 1);
print(data);
}
private static void print(int[] data) {
for (int i = 1; i < data.length; i++) {
System.out.print(data[i] + " ");
}
System.out.println();
}
/**
* 直接插入排序 时间复杂度:平均情况-O(n2) 最坏情况-O(n2) 辅助空间:O(1) 稳定性:稳定
*/
private static void insertSort(int[] data) {
int i, j;
for (i = 1; i < data.length; i++) {
if (data[i] < data[i - 1]) {
data[0] = data[i];
for (j = i - 1; data[0] < data[j]; j--) {
data[j + 1] = data[j];
}
data[j + 1] = data[0];
}
}
}
/**
* 折半插入排序 时间复杂度:平均情况-O(n2) 稳定性:稳定
*/
private static void bInsertSort(int[] data) {
int i, j, high, low, m;
for (i = 1; i < data.length; i++) {
data[0] = data[i];
low = 0;
high = i - 1;
while (low <= high) {
m = (low + high) / 2;
if (data[0] < data[m]) {
high = m - 1;
} else {
low = m + 1;
}
}
for (j = i - 1; j >= high + 1; j--) {
data[j + 1] = data[j];
}
data[high + 1] = data[0];
}
}
/**
* 时间复杂度:平均情况—O(n2) 最坏情况—O(n2) 辅助空间:O(1) 稳定性:稳定
*/
private static void bubbleSort(int[] data) {
for (int i = data.length - 1; i >= 2; i--) {
for (int j = 1; j < i; j++) {
if (data[j] > data[j + 1]) {
data[0] = data[j];
data[j] = data[j + 1];
data[j + 1] = data[0];
}
}
}
}
/**
* 时间复杂度:平均情况—O(nlog2n) 最坏情况—O(n2) 辅助空间:O(log2n) 稳定性:不稳定
*/
private static void quickSort(int[] data, int low, int high) {
if (low < high) {
int pivotloc = partition(data, low, high);
quickSort(data, low, pivotloc - 1);
quickSort(data, pivotloc + 1, high);
}
}
private static int partition(int[] data, int low, int high) {
data[0] = data[low];
int pivotkey = data[low];
while (low < high) {
while (low < high && data[high] >= pivotkey) {
high--;
}
data[low] = data[high];
while (low < high && data[low] <= pivotkey) {
low++;
}
data[high] = data[low];
}
data[low] = data[0];
return low;
}
}
发表评论
-
新博开启
2013-10-17 11:29 602天涯临枫:http://www.tianyalinfeng ... -
使用FileUtils获取文件夹下所有指定文件
2013-09-23 11:42 1516org.apache.commons.io.FileUt ... -
hibernate去重复数据
2013-09-21 19:16 862DetachedCriteria dc = Detached ... -
ckeditor简单应用
2013-09-13 11:35 802准备 ckeditor前端源码ckeditor_4.2_f ... -
深度复制
2013-09-11 16:50 693浅复制:将一个对象复制后,基本数据类型的变量都会重新创建,而 ... -
Java的23中设计模式
2013-09-10 14:59 1104Java的23中设计模式 从这一块开始,我们详细介绍Jav ... -
设计模式的六大原则
2013-09-10 14:51 838设计模式的六大原则 1、开闭原则(Open Close ... -
heritrix-3.1.1简单使用
2013-09-06 16:43 9021.下载heritrix-3.1.1-dist.zip(此 ... -
web程序禁止访问指定文件
2013-09-04 13:26 727在web.xml中添加如下代码: <security ... -
iframe里取不到struts2 action里的值
2013-08-06 11:23 1131struts action里的属性值正常都是存放在reque ... -
struts2使用UrlRewriteFilter时报错
2013-07-29 11:18 627struts2使用UrlRewriteFilter时报错 ... -
java正则去掉所有html标签
2013-07-02 14:40 861public static String trimHtml( ... -
java类中获取classes文件夹路径
2013-07-02 14:20 987例如:Test.java 在Test中获取项目classe ... -
Ehcache配置
2013-07-01 15:41 816<defaultCache ... -
jsp中 <%! %> 和 <% %> 的区别
2013-05-22 15:35 577<%! int a = 0; %> 当js ... -
用递归实现查找最大值
2013-05-14 11:42 526private static int recursiveM ... -
常用正则表达式
2013-05-07 16:11 476/** * check mobile phone num ... -
中文转拼音
2013-05-02 15:35 431import net.sourceforge.pinyin4 ... -
java获取某一年某个节气日期
2013-04-27 15:43 1863private static String[] solar ... -
公历农历互相转换
2013-04-26 10:08 1023public class CalendarUtil { / ...
相关推荐
在本系统中,我们主要实现了五种常用的排序算法:冒泡排序法、快速排序法、直接插入排序法、折半插入排序法和树形选择排序法。这些算法都是在计算机科学中最基本和最重要的排序算法,广泛应用于各种数据处理和分析...
常见的经典排序算法有希尔排序、二分插入法、直接插入法、带哨兵的直接排序法、冒泡排序、选择排序、快速排序、堆排序等。 一、希尔排序(Shell 排序法) 希尔排序法,又称宿小增量排序,是 1959 年由 D.L.Shell ...
常见的排序算法有插入排序、快速排序、选择堆积排序法等。 插入排序算法是一种简单的排序算法,适用于小规模的数据结构。该算法将数据结构分成已排序部分和未排序部分,并将未排序部分的元素插入到已排序部分中。...
在计算机科学领域,排序算法是数据处理中的核心部分,它涉及到如何有效地重新排列一组数据,使其按照特定的顺序排列。本资源"总结了各种排序算法,并用C++代码实现,并有演示",提供了丰富的学习材料,包括不同类型...
希尔排序是一种基于插入排序的算法,通过将待排序的数组元素按某个增量分组,然后对每组使用直接插入排序算法排序。随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止...
本篇文章将介绍一种经典的排序算法——**合并排序法**(Merge Sort),并通过C语言实现该算法。合并排序是一种非常有效的排序方法,其核心思想是分治法:将数据分为若干个子集,对这些子集分别进行排序,最后将排序...
最快的排序算法 最快的内部排序法—桶排序法,排序算法数据结构
在IT领域,排序算法是计算机科学中的基础但至关重要的概念,尤其在数据处理和算法设计中扮演着核心角色。本文将深入探讨标题中提到的几种基于比较的排序算法:选择排序、插入排序、归并排序、快速排序、堆排序、冒泡...
最快的排序算法 最快的内部排序法—桶排序法 (1),排序算法数据结构
在计算机科学领域中,排序算法是一种基本的算法,它可以将数据按照一定的顺序排列,以便更好地存储、检索和处理数据。排序算法的速度和效率对程序的性能有着至关重要的影响。 1.冒泡排序算法 冒泡排序算法是一种...
该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() ...
根据给定文件的信息,本文将深入探讨C语言中的两种经典排序方法:插入排序法与冒泡排序法。这两种方法在实际编程中应用广泛,对于理解数据结构与算法的基础概念至关重要。 ### 一、冒泡排序法 #### 1.1 基本原理 ...
双向起泡排序法是一种在链表结构中实现的排序算法,尤其适用于双向链表。它借鉴了传统冒泡排序的基本思想,但在链表环境中进行了优化,以提高效率。本篇文章将详细探讨双向起泡排序法及其在带头结点的双向链表中的...
六种排序算法的排序系统 本篇文章主要讲解了六种排序算法的排序系统,包括插入排序、冒泡排序、选择排序、快速排序、堆排序和归并排序。该系统可以让用户选择六种排序算法中的任意一个,并输出结果。 插入排序 ...
在IT领域,排序算法是计算机科学中的基础但至关重要的部分,尤其在数据处理和数据分析中起着关键作用。本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并...
在计算机科学中,排序算法是数据结构领域的重要组成部分,它涉及到如何有效地重新排列一组数据,使其按照特定的顺序排列。本资源提供了三种经典的排序算法的C语言实现:堆排序、直接插入排序和快速排序。 首先,让...
【排序算法性能分析】 在计算机科学中,排序算法是用于重新排列一组数据的算法,使得数据按照特定的顺序排列。本篇文章将详细讨论几种常见的排序算法:选择排序、冒泡排序、插入排序、合并排序以及快速排序,分析...
在计算机科学领域,排序算法是数据处理中至关重要的一部分,它涉及到如何有效地重新排列一组数据,使其按照特定的顺序排列。本资源提供了七大经典排序算法的实现程序,包括快速排序、冒泡排序、选择排序、归并排序、...
时间复杂度用于衡量排序算法的效率,通常以大O表示法来表示。文档中提到了几种不同排序算法的时间复杂度: - **O(n²)**:插入排序、冒泡排序和选择排序的时间复杂度均为O(n²),这意味着随着数据量的增加,这些...
排序算法是计算机科学中最基础和重要的算法之一,用于将一组数据按照特定的顺序进行排列。本文将对几种常见的内部排序算法和外部排序算法进行详细总结。 首先,排序的基本定义是:给定一个包含n个记录的序列,其...