package com.cc.dataconsttuct.com; /*** * 简单选择排序:令A[0,n-1]有n个数据元素的数组,将数组A排列为一个非降序的有序数组; * 算法:首先在n个元素中找到最小元素,将其放在A[0]中,然后将剩下的n-1个元素中找到最小的放在A[1]中,这个过程不断进 ...
分类:
编程语言 时间:
2017-09-29 10:59:36
阅读次数:
260
选择排序是每次从序列中挑出一个最小的数字放在开始位置,依次往后即可,如何找到最小的元素可以有两种方法。 1、简单选择排序,就是直接找了,每次找到最小那个放在起始位置。 2、堆排序,在二叉树中执行,要求每个节点都比左右节点大,整个树的根节点就是最大的,然后将根节点与最后一个节点调换位置,并重新排列,这 ...
分类:
编程语言 时间:
2017-09-24 14:31:33
阅读次数:
191
我们平时说的“排序”,指的是内部排序,即使用内存资源进行排序的。除了内部排序之外,还有外部排序。本文主要介绍内部排序。 内部排序分为插入排序、选择排序、交换排序、归并排序等。其中,插入排序又分为直接插入排序和希尔排序;选择排序分为简单选择排序和堆排序;交换排序又分为冒泡排序和快速排序。 也就是说,本 ...
分类:
编程语言 时间:
2017-09-10 19:02:35
阅读次数:
208
今天做的一套题。。很遗憾,就做了前两题,还打挂了。。 第一题大意是给一堆红绿蓝卡,然后两个不同颜色的变成第三个或者两个相同颜色变成一个,求最后可能的颜色。 简单选择结构练习题,过。 第二题是一个数列,选出子集使得平均数减中位数最大。 容易证明子集一定是奇数个,枚举中位数,发现前面尽量离它近,后面尽量 ...
分类:
其他好文 时间:
2017-09-10 15:09:47
阅读次数:
164
交换法:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。 简单选择排序:的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2 ...
分类:
编程语言 时间:
2017-09-07 17:01:30
阅读次数:
120
1 package Sort; 2 3 /** 4 * Created by lenovo on 2017/9/6. 5 */ 6 /* 7 * 优化的冒泡排序 8 * 如果数组i之后元素之间没有发生交换,那么说明i之后的元素已经排好序了,此时flag标记为false, 9 * 数组排序结束,否则继... ...
分类:
编程语言 时间:
2017-09-06 14:38:49
阅读次数:
185
基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 简单选择排序的示例: 操作方法: 第一趟,从n 个记录中找出关键码最小的记 ...
分类:
编程语言 时间:
2017-08-22 00:26:22
阅读次数:
185
一、概念 堆排序是简单选择排序的一种改进,改进的着眼点是:如何减少关键码的比较次数。 简单选择排序在一趟排序中仅选出最小关键码,没有把一趟比较结果保存下来,因而记录的比较次数较多。 堆排序在选出最小关键码的同时,也找出较小关键码,减少了在后面的选择中的比较次数,从而提高了整个排序的效率。 堆是具有下 ...
分类:
编程语言 时间:
2017-08-17 21:20:47
阅读次数:
117
一、基本概念 每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 二、实现思路 三、代码实现 四、时间复杂度 简单选择排序的比较次数与序列的初始排序无关。 假设待排序的序列有 N 个元素,则比较次数总是N (N - 1) / 2。 而移动次数与序列的初始排 ...
分类:
编程语言 时间:
2017-08-11 10:53:18
阅读次数:
204
选择排序的基本思想是:每一趟从待排序的记录中选出关健字最小的记录,按顺序放在已排序的记录序列的最后,直到全部排完为止。 简单选择排序(Simple Selection Sort)也称作直接选择排序 代码如下 算法时间复杂度O(n2)空间复杂度为1 算法特点 (1)就选择排序方法本身来讲,它是一种稳定 ...
分类:
编程语言 时间:
2017-08-10 13:43:14
阅读次数:
349