排序算法 2.非比较排序 计数排序、基数排序 排序算法实现 假定序列array[10]={73,22,93,43,55,14,28,65,39,81} (以升序为例) 直接插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 2. 希尔排序 希尔排序(She ...
分类:
编程语言 时间:
2016-06-16 06:46:05
阅读次数:
401
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparabl ...
分类:
其他好文 时间:
2016-06-07 17:56:25
阅读次数:
203
相同: Comparable和Comparator都是用来实现对象的比较、排序 要想对象比较、排序,都需要实现Comparable或Comparator接口 Comparable和Comparator都是Java的接口 不同: Comparator位于java.util包下,而Comparable位 ...
分类:
编程语言 时间:
2016-05-31 15:29:24
阅读次数:
180
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparabl ...
分类:
其他好文 时间:
2016-05-25 11:10:01
阅读次数:
94
●计数排序1、算法思想:计数排序是直接定址法的变形。通过开辟一定大小的空间,统计相同数据出现的次数,然后回写到原序列中。2、步骤:1)找到序列中的最大和最小数据,确定开辟的空间大校2)开辟空间,利用开辟的空间存放各数据的个数。3)将排好序的序列回写到原序列中。具..
分类:
编程语言 时间:
2016-05-23 22:49:25
阅读次数:
244
计数排序:#define_CRT_SECURE_NO_WARNINGS1
#include<iostream>
usingnamespacestd;
#include<assert.h>
#include<vector>
voidPrint(vector<int>a)
{
for(inti=0;i<a.size();i++)
{
cout<<a[i]<<"";
}
cout<<endl;
}
voidC..
分类:
编程语言 时间:
2016-05-23 19:36:09
阅读次数:
260
在上一篇博客中,主要是实现各种的排序算法,并针对一些算法进行了优化的处理,下面主要讨论一下非比较排序的算法(计数排序、基数排序),同时并对各种排序算法的性能、时间复杂度、空间复杂度、优缺点、以及适用场景做总结分析。1.计数排序主要思想:主要是需要统计次数,使..
分类:
编程语言 时间:
2016-05-23 19:34:01
阅读次数:
230
●直接插入排序(InsertSort)1、算法描述:该算法是一种简单直观的是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上只需用到O(1)的额外空间的排序,因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位为最新..
分类:
编程语言 时间:
2016-05-22 18:41:12
阅读次数:
249
数据结构中的排序算法分为比较排序,非比较排序。比较排序有插入排序、选择排序、交换排序、归并排序,非比较排序有计数排序、基数排序。下面是排序的具体分类:1.直接排序主要思想:使用两个指针,让一个指针从开始,另一个指针指向前一个指针的+1位置,两个数据进行比较voidI..
分类:
编程语言 时间:
2016-05-22 18:39:26
阅读次数:
282
基数排序与基数排序是两种非比较型排序。计数排序:
//************计数排序*********
//先最大-最小+1得到开辟空间数,开辟空间str,在遍历原数据arr在str相应位置计数,再遍历str将值写到原arr中
//适用在密集型数据,无重复最优可转化为位图
//时间复杂度O(N),空间复杂度O(..
分类:
编程语言 时间:
2016-05-22 18:37:27
阅读次数:
248