插入排序
起泡排序
选择排序
归并排序
快速排序
堆排序...
分类:
编程语言 时间:
2015-06-01 22:46:48
阅读次数:
129
选择排序的思想:假设现在有一堆数据,需要排序。首先选择第一个数据和剩下的所有数据做比较,找到最大的或者最小的数据,和第一个数据交换位置,这样第一个位置的数据肯定是最大或者最小的。再对剩下的数据,重复上面的操作,在剩下的数据里面,选择第一个数据和剩下的所有数据做比较,找到最大的或者最小的数据,和剩下的...
分类:
编程语言 时间:
2015-06-01 20:24:14
阅读次数:
163
优化一:
#include
#define N 10
int main(){
int a[N],max,k,temp,j;
for(int i=0;i
{
scanf("%d",&a[i]);
}
for(i=0;i
{
max=i...
分类:
编程语言 时间:
2015-05-31 15:30:31
阅读次数:
143
排序概述排序用途广泛,比如为数据库查询结果按时间排序,最小生成树算法中对边按权重排序,背包问题中对物品按大小排序等等。排序算法有很多,本文主要记录了冒泡排序、插入排序、快速排序、选择排序、堆排序、归并排序等几种比较流行的算法。冒泡排序 //冒泡排序,对数组做n-1趟扫描,每一趟把未就位的元素中的最大的元素
//放到他正确的位置上,每一趟扫描从输入数组第一个元素开始,依次...
分类:
编程语言 时间:
2015-05-31 11:01:31
阅读次数:
210
3. 选择排序—简单选择排序(Simple Selection Sort) 基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。...
分类:
编程语言 时间:
2015-05-30 01:47:22
阅读次数:
132
算法复杂度以及稳定性分析算法名称平均时间辅助空间稳定性冒泡排序O(n2)O(1)是选择排序O(n2)O(1)否插入排序O(n2)O(1)是自底向上归并排序O(nlog2n)O(n)是自顶向下归并排序O(nlog2n)O(n)是快速排序O(nlog2n)O(n)否堆排序O(nlog2n)O(1)否基数...
分类:
编程语言 时间:
2015-05-30 00:35:05
阅读次数:
147
template void List::sort(ListNodePosi(T) p, int n) { //列表区间排序
switch (rand() % 3) { //随机选取排序算法。可根据具体问题的特点灵活选取或扩充
case 1: insertionSort(p, n); break; //插入排序
case 2: sele...
分类:
编程语言 时间:
2015-05-29 15:51:18
阅读次数:
143
简单选择排序是人们最熟悉的比较方式,其算法思想为:从数组的开头开始,将第一个元素和其他元素进行比较。检查完所有元素后,最小的元素会被放到数组的第一个位置,然后算法会从第二个位置继续。这个过程会一直进行,当进行到数组的倒数第二个位置时,所有的数据便完成了排序。
代码如下:
{CSDN:CODE:674849}
分析可得,简单选择排序的时间复杂度为O(n2)。选择排序的...
分类:
编程语言 时间:
2015-05-28 21:39:10
阅读次数:
312
class Program { static void Main(string[] args) { //选择排序 int[] a = new int[5] { 111, 12, 223, 854, -5655 };//初...
分类:
编程语言 时间:
2015-05-28 00:44:00
阅读次数:
139
选择排序中的两个经典算法:简单选择排序,堆排序。简单选排:通过n-1次数据元素的比较,从n-i+1个记录中选择最小的数据,并与第i个数据进行交换,它的时间复杂度是O(n^2)。堆排序:利用堆的特征进行排序,复杂度为O(n*logn)。 1 #include 2 #include 3 4 int...
分类:
编程语言 时间:
2015-05-27 22:33:47
阅读次数:
163