先定义个交换数组元素的函数,供排序时调用 简单选择排序(O(n^2)) 简单选择排序是最简单直观的一种算法。 基本思想:每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 在算法实现时,每一趟确定最小元素的时候会通过不断地比较交换来使得 ...
分类:
编程语言 时间:
2017-11-08 00:54:11
阅读次数:
254
一.冒泡排序(Bubble Sort) 基本思想:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。 排序前的顺序为:9 1 5 8 3 7 4 6 2 当i=1时,交换的情况如下: 二.简单选择排序(Simple Selection Sort) 通过n-1次关键字间的比较,从n-i ...
分类:
编程语言 时间:
2017-11-07 13:27:08
阅读次数:
252
原理: 每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。 第i趟简单选择排序是指通过n-i次关键字的比较, 从n-i+1个记录中选出关键字最小的记录。 并和第i个记录进行交换。 共需进行i-1趟比较,直到所有记录排序完成为止。 说人话:第一趟从序列中找 ...
分类:
编程语言 时间:
2017-10-19 21:20:45
阅读次数:
418
一、前言如果需要Java版本的堆排序或者堆排序的基础知识——树的概念,请参看本人博文《排序算法(二)堆排序》关于选择排序的问题选择排序最大的问题,就是不能知道待排序数据是否已经有序,比较了所有数据也没有在比较中确定数据的顺序。堆排序对简单选择排序进行了改进。二..
分类:
编程语言 时间:
2017-10-17 22:50:51
阅读次数:
391
1、简单选择排序: 1、给定一个列表2、将列表赋值给nums3、取列表nums的长度4、迭代长度5、定义一个maxindex,赋值i 假定i为最大值索引6、迭代i+1-length 如果maxindex[i]的值小于nums[j] 将j赋给maxindex 然后nums[maxindex]就是最大值 ...
分类:
编程语言 时间:
2017-10-10 19:02:41
阅读次数:
186
排序算法(三):简单选择排序算法-Java实现 简单选择算法是除堆排序的另外一种选择排序算法,其也是一种不稳定的排序算法,平均时间复杂度为O(N2),空间时间复杂度为O(1) 简单选择算法相对比较简单,并且易于理解,具体排序算法思路如下: 实现代码如下: ...
分类:
编程语言 时间:
2017-10-09 09:50:20
阅读次数:
173
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
交换法:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。 简单选择排序:的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2 ...
分类:
编程语言 时间:
2017-09-07 17:01:30
阅读次数:
120