public class StraightSelectSort { public static void Sort(int[] array) { //要遍历的次数 for (int i = 0; i array[j]) ...
分类:
编程语言 时间:
2015-07-18 21:17:08
阅读次数:
141
基本思想在一组元素中选择具有最小排序码的元素,若它不是这组元素中的第一个元素,则将它与这组元素中的第一个元素对调;在未排序的剩下的元素中重复执行以上步骤,直到剩余元素只有一个为止。代码private void selectSort(int[] a, int left, int right) {
for (int i = left; i < right; i++) {
int...
分类:
编程语言 时间:
2015-07-18 12:37:05
阅读次数:
167
堆排序是一种树形选择排序,是对直接选择排序的有效改进。
堆是一种数据结构,其定义:任何一个非叶结点的值,都不大于(或不小于)其左右孩子结点的值。若父亲大孩子小,则这样的堆叫做大顶堆;若父亲小孩子大,则这样的堆叫做小顶堆。顾名思义,大顶堆的根结点的值是最大的,小顶堆的根结点的值是最小的。基本思想首先,将一个无序序列调整为大顶堆(小顶堆),我们就找到了这个无序序列的最大(或最小)值,然后将这个值交换到...
分类:
编程语言 时间:
2015-07-18 11:03:33
阅读次数:
142
1.算法介绍 堆排序是一种树形选择排序,是对直接选择排序的有效改进。 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]...
分类:
编程语言 时间:
2015-07-12 20:20:51
阅读次数:
161
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。内排序有可以分为以下几类:(1)、选择排序:直接选择排序、堆排序。(2)、交换排序:冒泡排序、快速排序..
分类:
编程语言 时间:
2015-07-11 18:52:21
阅读次数:
238
---恢复内容开始---从开始准备学编程就一直听算法算法。算法个毛东西?今天开始我就开始准备接触算法算法那么首先就是排序:排序大概份四种排序: 交换排序: 包括冒泡排序,快速排序。 选择排序: 包括直接选择排序,堆排序。 插入排序: 包括直接插入排序,希尔排序。 合并排序: 合并排序。...
分类:
编程语言 时间:
2015-06-16 22:44:14
阅读次数:
163
这一系列博客的特点就是——给出每趟排序的结果
本来想着好好写一下过程,弄个图片什么的,不过觉得网上的解析太多了,都比较好,所以这些博客就算是对自己的总结吧。
#include
void SelectSort(int *m, int n)
{
int i,j,k,temp;
bool flag;
for(i=0;i<n-1;i++)
...
分类:
编程语言 时间:
2015-05-26 12:39:15
阅读次数:
119
分类: 白话经典算法系列 2011-08-09 11:15 16682人阅读 评论(29) 收藏 举报 算法面试c直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素....
分类:
编程语言 时间:
2015-05-12 22:57:28
阅读次数:
160
直接选择排序是程序里面非常基础的一个排序算法,算法效率不高,但相对很稳定。算法原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。示例数据:比如有如下数组 R[] 和每一次...
分类:
编程语言 时间:
2015-05-11 19:42:21
阅读次数:
251
这一系列博客的特点就是——给出每趟排序的结果本来想着好好写一下过程,弄个图片什么的,不过觉得网上的解析太多了,都比较好,所以这些博客就算是对自己的总结吧。#include<stdio.h>
voidSelectSort(int*m,intn)
{
inti,j,k,temp;
boolflag;
for(i=0;i<n-1;i++)..
分类:
编程语言 时间:
2015-04-29 20:00:33
阅读次数:
187