排序算法(1)

本文总结了排序算法在数据结构中的重要性,重点探讨了冒泡排序的三种形式,包括初级版、正宗冒泡排序和优化版,并分析了它们的时间复杂度。此外,还介绍了简单选择排序和直接插入排序。最后,简要提及了希尔排序和快速排序,这两种高效排序算法的时间复杂度分别为O(N^1.5)和O(N*logN)。
摘要由CSDN通过智能技术生成

                                                         数据结构中关于排序问题的总结

序言:排序算法一直是计算机专业很重要的问题之一。尤其在这样的大数据时代,信息爆炸。根据新摩尔定律,每隔18个月人类信息总量就会翻倍。这时,使用合适高效的排序算法会极大提升程序性能。本人学习几大 排序算法之后,颇有感触,姑且总结如下。

一.排序导论

       概念:对于给定的含有n个记录的无规则序列,每个序列含有相应的关键字,通过调整这些记录的先后顺序,使序列按照关键字递增或者递减,这就是排序。

       稳定性:既然是排序,就免不了有大小相同的元素,这时又该如何处理其前后顺序呢? 假设k1等于k2,在原序列中,k1在k2之前,在经过排序之后,k1依旧在k2之前,这是我们称这种排序方法是稳定的,否则就是不稳定的。(稳定排序在多关键字排序中极为重要,这里不加赘述)

       内排序:排序数量较少,直接装入内存中排序,不需要访问内存

外排序:排序数量太多,无法一次性装入内存,需要在排序过程中实现内存外存的交换

(此次只研究内部排序)

影响排序算法的几大性能:

1.      时间性能

2.      辅助空间

3.      算法复杂度

本次主要研究排序算法如下

简单算法:冒泡排序,简单选择排序,直接插入排序

复杂算法:希尔排序,堆排序,快速排序,归并排序

几大算法的基本关系如下:

排序可以分成插入,选择,交换,归并四种。交换排序里面又有冒泡和快速排序,所以快速排序可以说是更高端的冒泡。插入排序分为直接插入排序和希尔排序。选择排序可以分为简单选择排序和堆排序。

***为了方便起见,以下所用数组弃用0号单元,下标为i的元素就储存第i个元素

       排序算法均为升序。

二.三种不同类型的冒泡排序

       简介:冒泡排序是很多编程学习者最先接触的排序算法,原因无他,只是简单,时间性能最低。但作为最简单的排序算法,却有三种形式。以下分别叙述。

       思想:bubble sort ,冒泡排序,一种交换类型的排序,两两比较相邻关键字的大小,如果反序就交换,直到有序为止。

1.      冒泡排序初级版

  C语言实现:

                     void BubblesSort(inta[],int n)

{

       int i,j;

       for(i = 1;i < n;i++)

       {

              for(j = i+1;j <= n;j++)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值