算法の排序,算法の


1.是什么

排序(Sorting)是数据处理中一种很重要也很常用的运算。排序就是将一组对象按照规定的次序重新排列的过程。

下面给出百度百科的解释“排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列

2.为什么

   排序往往为了检索服务。排序操作在数据处理中要花费很多时间。为了提高计算机的运行效率,人们不断改进各种排序算法,这些算法从不同的角度展示了算法设计的某些重要原则和技巧。
3.怎么做     下面一张图是我对软考中设计到的排序结合自考的中数据库结构基础中的相关内容,加上自己的理解将各自算法的核心用尽量简单的一句话画出的一张思维导图:

4.这样做的好处

    只要知道各自算法的性能特点,包括时间复杂度、空间复杂度和稳定性,才能选择合适的算法解决问题,从而提高算法计算的效率。下面是各种算法的性能参数表:      初学者,若有不妥之处欢迎大家指出相互交流。

对于直接排序算法

这个其实就是直接插入排序,首先从第二个元素开始,也就是你的赋值操作,把a[i]赋给temp,第一次其实就是a[2],让它和a[1]比较,如果比a[1]小的话,
那么就让a[2]等于a[1],让a[1]等于temp,这个temp其实就是刚开始保存的a[2].
这样的话 a[1]和a[2]就是有序的了。
同样的道理,当依次往后面遇到每一个元素的时候,都让这个元素和前面的每一个元素进行比较,如果遇到了比它大的就往后面挪一步。举个例子来说
比如 1,2,4,3.当遇到第四个数 也就是3的时候,就让它和前面的每一个数进行比较,3比4小吗,回答是小,那么久让第四个数等于4,这个时候3保存在temp变量中,让第三个书等于3,然后让temp=3和 2比较,比它大 ,所以不动,同样的道理和1比较,也不动。于是整个数组就有序了 1,2,3,4.
 

选择排序算法的思想是什?

每一次都选择当前序列的最值:
例 1,3,6,9,5 从小到大排序!
第一步 1
第二步 1,3
第三步 1,3,5
第四步 1,3,5,6
第五步 1,3,5,6,9

//递增选择排序的实现!

void SelectSort(double *head, int amount)
{
double temp;
int m,n;
for (m=0; m<amount-1; m++)
{
for (n=m+1; n<amount; n++)
{
if (head[n]<head[m])
{
temp=head[n];
head[n]=head[m];
head[m]=temp;
}
}
}
}
 

相关内容