1. 要求输入10个整数,从大到小排序输出 输入:2 0 3 -4 8 9 5 1 7 6 输出:9 8 7 6 5 3 2 1 0 -4 解决方法:选择排序法 实现代码如下: #include <stdio.h> int main(int argc, const char * argv[]) { ...
分类:
编程语言 时间:
2016-09-24 16:02:43
阅读次数:
174
一、堆排序算法的基本特性时间复杂度:O(n*lgn)最坏:O(n*lgn)空间复杂度:O(1)不稳定。 堆排序是一种选择排序算法,与关键字的初始排列次序无关,即就是在最好,最坏,一般的情况下排序时间复杂度不变。对包含n个数的输入数组,平均时间为O(nlgn),最坏情况(已经排好序)也是是O(nlgn ...
分类:
编程语言 时间:
2016-09-24 16:01:30
阅读次数:
236
1 package com.hp.io; 2 3 import java.util.Scanner; 4 5 public class MaoPao { 6 public static void main(String[] args) { 7 Scanner s = new Scanner(Syst ...
分类:
编程语言 时间:
2016-09-24 10:24:58
阅读次数:
134
上面的代码是算法导论里给的伪代码例子,是一种升序的写法,那降序的怎么写呢: 在给一个选择排序的算法(升序): 线性排序的方法里还有个冒泡,就是两两互换,也是线性的。下一篇讲解分治。 ...
分类:
编程语言 时间:
2016-09-23 14:42:21
阅读次数:
177
八种排序算法很长时间没有使用了,今天做一个总结,方便以后自己用的时候参考。 这八种排序算法都是内部算法,这八种排序算法分别是: 1. 插入排序 1)直接插入排序 2)希尔排序 2.选择排序 1)简单选择排序 2)堆排序 3.交换排序 1)冒泡排序 2)快速排序 4.归并排序 5.基数排序 一、直接插 ...
分类:
编程语言 时间:
2016-09-21 21:30:46
阅读次数:
255
堆排序是一种树形选择排序,是对直接选择排序的有效改进。 基本思想: 堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足 时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最小项(小顶堆)。 若以一维数组存储一个堆,则堆对应一棵完全二叉树,且所有非叶结点的值均不大于( ...
分类:
编程语言 时间:
2016-09-20 23:43:04
阅读次数:
189
基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 简单选择排序的示例: 操作方法: 第一趟,从n 个记录中找出关键码最小的记 ...
分类:
编程语言 时间:
2016-09-19 23:59:12
阅读次数:
292
PHP 四种基本排序算法的代码实现 许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初级phper,虽然很少接触到算法方面的东西。但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具。这里介绍冒泡排序,插入排序,选择排序,快速排序四种基本算法,分析一下算法的思路。 前提:分别 ...
分类:
编程语言 时间:
2016-09-19 16:12:42
阅读次数:
166
Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳 ...
分类:
编程语言 时间:
2016-09-19 16:03:16
阅读次数:
215
1.稳定性比较 插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的 选择排序、希尔排序、快速排序、堆排序是不稳定的 2.时间复杂性比较 平均情况 最好情况 最坏情况 归并排序 O(nlogn) O(nlogn) O(nlogn) 基数排序 O(n) O(n) O(n) 快速排序 O( ...
分类:
编程语言 时间:
2016-09-18 01:14:18
阅读次数:
241