排序的定义 排序 排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。 排序分为内部排序和外部排序 内部排序 指的是待排序记录存放在计算机存储器中进行的排序过程 外部排序 指的是待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚 ...
分类:
编程语言 时间:
2018-12-24 02:50:11
阅读次数:
197
排序算法 算法分析 算法稳定性 如果一种排序算法不会改变关键码值相同的记录的相对顺序,则称为稳定的(stable) 不稳定的算法在某种条件下可以变为稳定的算法,而稳定的算法在某种条件下也可以变为不稳定的算法。例如,对于冒泡排序算法,原本是稳定的排序算法,如果将记录交换的条件改成a[j].key>=a ...
分类:
编程语言 时间:
2018-12-12 22:07:25
阅读次数:
326
#include <stdlib.h> #include <stdio.h> #define MAX 50 int slist[MAX]; /*待排序序列*/ void insertSort(int list[], int n); void createList(int list[], int *n ...
分类:
编程语言 时间:
2018-12-11 21:45:10
阅读次数:
256
一.最小生成树(Minimum Spanning Tree):载一个给定的无向图G中求一棵树T,使得这棵树拥有图G中的边,并且满足整棵树的边权之和最小。 算法核心思想:贪心 1.Krustal算法(边贪心) (1)对所有的边按边权从小到大进行排序; (2)按边权从小到大测试所有边,如果当前测试边所连 ...
分类:
其他好文 时间:
2018-10-27 23:37:43
阅读次数:
322
[TOC] 7.1 排序的基本概念 7.1.1 排序的定义 排序 :就是重新排列表中的元素,使表中的元素满足按关键字递增或递减的过程。 为了査找方便,通常要求计算机中的表是按关键字有序的。 排序的确切定义如下: 输入:n 个记录 $R_1,R_2,\cdots,R_n$,对应的关键字为 $k_1,k ...
分类:
编程语言 时间:
2018-08-26 16:41:47
阅读次数:
203
排序的稳定性:如果Ki=Kj,且排序前的序列中i<j,如果排序后,i<j,则排序方法是稳定的;反之,如果i>j,则排序方法是不稳定的。 1、冒泡排序 2、选择排序 ...
分类:
编程语言 时间:
2018-08-17 22:17:06
阅读次数:
120
1.排序的基本概念1.1.排序的概念定义:排序是计算机内经常进行的一种操作,其目的是将一组“无序”的数据调整为“有序”的数据元素。数学定义:假设含有n个数据元素的序列为{R1,R2...Rn},其相应的关键字序列为:{K1,K2...Kn};这些关键字相互之间进行比较,即:在他们之间存在着这样的一个关系:Kp1<=Kp2<=...<=Kpn按此固有关系将上式重新排列为:{Rp1,
分类:
编程语言 时间:
2018-07-04 11:42:18
阅读次数:
163
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} sorted = sorted(x.iteritems(), key=lambda x: x[1], reverse=True) import operator;sorted = sorted(x.iteritems(), key ...
分类:
编程语言 时间:
2018-06-20 12:49:40
阅读次数:
162
排序的基本概念 重点考察稳定性、排序趟数、时间复杂度和空间复杂度。 排序算法类型一:简单排序算法 1.简单选择排序 核心思想:每一趟排序,找到待排序序列中关键字最小的数据元素,将其与待排序序列中的第一个数据元素交换位置,并将其从下一趟待排序序列中移出,重复该过程,直到某趟排序时待排序序列中仅剩下两个 ...
分类:
编程语言 时间:
2018-06-05 21:07:39
阅读次数:
265
快速排序 首先快速排序步骤: 首先选择轴值 把待排序内容分为两部分,左边为小于或者等于轴值,右边为大于轴值 然后对左右重复上面步骤直到整个序列有序 直接上代码这里先写一次划分的代码 这里的一次划分是那第一个数字为轴值,我们也可以用最后一个或者中间的。 #include<iostream> #incl ...
分类:
编程语言 时间:
2018-05-21 21:53:41
阅读次数:
234