算法与数据结构
xianqi_h
这个作者很懒,什么都没留下…
展开
-
各种排序算法及其java程序实现(1) -- 冒泡排序(Bubble Sort)
各种排序算法: 冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序 冒泡排序(Bubble Sort) 1. 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。 2. 排序过程: 设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作...原创 2012-03-22 21:38:14 · 116 阅读 · 0 评论 -
各种排序算法及其java程序实现(2) -- 选择排序
选择排序 1. 基本思想: 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 2. 排序过程: 【示例】: 初始关键字[49 38 65 97 76 13 27 49] 第一趟排序后13 [38 65 97 76 49 27 49] 第二趟排序后13 27 [...原创 2012-03-23 09:51:35 · 98 阅读 · 0 评论 -
各种排序算法及其java程序实现(3) -- 插入排序
插入排序(Insertion Sort) 1. 基本思想: 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。 2. 排序过程: 【示例】: [初始关键字] [49] 38 65 97 76 13 27 49 J=2(38) [38 49] 65 97 76 13...原创 2012-03-23 09:54:41 · 94 阅读 · 0 评论 -
各种排序算法及其java程序实现(4) -- 希尔排序(Shell Sort)
希尔排序(Shell Sort) 插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 希尔排序基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序 ;然后,取第二个增量d2<d1重复上述的分组和排序,直...原创 2012-03-23 10:35:49 · 105 阅读 · 0 评论 -
各种排序算法及其java程序实现(5) -- 快速排序(Quick Sort)
快速排序(Quick Sort) 1. 基本思想: 在当前无序区R[1..H]中任取一个数据元素作为比较的"基准"(不妨记为X),用此基准将当前无序区划分为左右两个较小的无序区:R[1..I- 1]和R[I+1..H],且左边的无序子区中数据元素均小于等于基准元素,右边的无序子区中数据元素均大于等于基准元素,而基准X则位于最终排序的位置 上,即R[1..I-1]≤X...原创 2012-03-23 13:49:13 · 111 阅读 · 0 评论