一. 算法描述 选择排序:在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。二. 算法分析平均时间....
分类:
其他好文 时间:
2014-07-21 23:30:02
阅读次数:
281
在排序算法中,简单排序主要有三种,分别为冒泡排序、选择排序、插入排序,学习理解好这三种排序算法有助于进一步研究数据结构与算法分析。下面,简单地谈一谈冒泡排序、选择排序、插入排序的原理及区别。冒泡排序原理:1、比较相邻的元素。如果前一个比后一个大,它们就交换。2、每对元素都要进行同样的动作,从后往.....
分类:
其他好文 时间:
2014-07-19 16:32:37
阅读次数:
203
static void Main(string[] args) { int[] arr = new int[] { 11,1, 9, 4, 6, 8, 6, 11, 30 }; printMM(arr); Select...
分类:
其他好文 时间:
2014-07-16 19:17:52
阅读次数:
188
直接插入排序:将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1...
分类:
其他好文 时间:
2014-07-16 17:32:03
阅读次数:
223
下面是两种最基本的排序:冒泡排序、选择排序.复杂度均为O(n^2)。
冒泡排序:
bool BubbleSort(int arr[],int len)
{
if(arr == NULL || len <= 0)
{
return false;
}
int i,j,temp;
int flag = 1;
for(i = 0; i < len -1 && fla...
分类:
其他好文 时间:
2014-07-16 12:58:04
阅读次数:
167
写在前面:
排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。因此排序掌握各种排序算法非常重要。对下面介绍的各个排序,我们假定所有排序的关键字都是整数、对传入函数的参数默认是已经检查好了的。只是简单的描述各个算法并给出了具体实现代码,并未做其他深究探讨。
基础知识:
...
分类:
其他好文 时间:
2014-07-16 09:47:22
阅读次数:
296
该算法时间复杂度为O(n^2),空间复杂度为O(1) ;//选择排序(前部为有序序列,后部为无序序列)#includeint main() { int a[] = {49,38,65,49,76,13,27,52} ; int i , j , k ; for(i = 0 ; i ...
分类:
其他好文 时间:
2014-07-15 00:00:46
阅读次数:
204
选择排序的时间复杂度为O(n^2),是不稳定的排序冒泡排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),平均情况下为O(n^2),是稳定的排序插入排序的时间复杂度最好情况下为O(n),最坏情况下为O(n^2),,平均情况下为O(n^2),是稳定的排序1.选择排序def selectio...
分类:
编程语言 时间:
2014-07-14 19:40:48
阅读次数:
235
(一)为什么要用c++标准库里的排序函数
Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!
(二)c++标准库里的排序函数的使用方法
I)Sort函数包含在头文件为#include的c++标准库中,调用标准库里的排...
分类:
编程语言 时间:
2014-07-14 18:29:36
阅读次数:
263