1. 冒泡排序

  • 时间复杂度O(n2)
  • 空间复杂度O(1)

算法的基本思想:

  • 相邻元素交换,一共n-1轮,每轮交换n-1-i个元素

C++实现:

  • int* bubbleSort(int* A, int n) {

for(int i=0;i<n-1;i++)
        {
            for(int j=0;j<n-1-i;j++)
            {
                if(A[j]>A[j+1])
                    swap(A[j],A[j+1]);
            }
        }
        return A;

}

2. 选择排序

  • 时间复杂度O(n2)
  • 空间复杂度O(1)

算法的基本思想:

  • 将元素分为待排序与已排序两类。每次从待排序的元素中选择最小的一个元素插入到待排序元素的最后,需要选择n-1次。

C++实现:

  • int* selectionSort(int* A, int n) {

for(int i=0;i<n;i++)
        {
            int min=i;
            for(int j=i+1;j<n;j++)
            {
                if(A[j]<A[min])
                    min=j;
            }
            swap(A[min],A[i]);
        }
        return A;

}

3. 插入排序

  • 时间复杂度O(n2)
  • 空间复杂度O(1)

算法的基本思想:

  • 将元素分为待排序与已排序两类。默认将第一个元素放入已排序类中,从第二个元素开始遍历,将所取的当前值与已排序的元素进行比较。比较的方法为从后向前比较,若该已排序元素的值不小于当前值,则将该已排序元素的位置+1,否则插入当前值到已排序类中。

C++实现:

  • int* insertionSort(int* A, int n) {
            for(int i=1;i<n;i++)
            {
                int get=A[i];
                int j=i-1;
                while(j>=0&&A[j]>=get)
                {
                    A[j+1]=A[j];
                    j--;
                }
                A[j+1]=get;
            }
            return A;
        }

常见排序算法整理1(C++实现)相关推荐

  1. Java常见排序算法之插入排序

    一.概述 本节由小千给大家分享Java常见排序算法之插入排序,之前我们说过排序是算法中的一部分.所以我们学习排序也是算法的入门,为了能让大家感受到排序是算法的一部分,我举个例子证明一下:比如麻将游戏, ...

  2. python常见排序算法解析

    python--常见排序算法解析 算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法,分 ...

  3. 常见排序算法及对应的时间复杂度和空间复杂度

    排序算法经过了很长时间的演变,产生了很多种不同的方法.对于初学者来说,对它们进行整理便于理解记忆显得很重要.每种算法都有它特定的使用场合,很难通用.因此,我们很有必要对所有常见的排序算法进行归纳. 排 ...

  4. 常见排序算法2–直接插入法vs希尔排序法

    常见排序算法–直接插入法vs希尔排序法 首先,我们通过一个例子来了解直接插入算法 例如,对原始数组{15,24,3,49,10}进行直接插入排序(由小到大进行排序) 第一个数15无法比较,第二个数24 ...

  5. php常见排序算去,PHP兑现常见排序算法

    PHP实现常见排序算法 //插入排序(一维数组) function insert_sort($arr){ $count = count($arr); for($i=1; $i $tmp = $arr[ ...

  6. Java常见排序算法

    Java常见排序算法 转载于:https://www.cnblogs.com/hfultrastrong/p/7829889.html

  7. android studio插入数据表中没有_学Java能拿高薪吗 Java中常见排序算法有哪些

    学Java能拿高薪吗?Java中常见排序算法有哪些?作为老牌编程语言,Java拥有广阔的市场占有率,几乎90%以上的大中型互联网应用系统在服务端开发都会首选Java.为了加入到Java这一高薪行业,很 ...

  8. Java 实现常见排序算法

    Java 实现常见排序算法 1. 综述 复习常见排序算法,用Java实现. 2. 代码 1 package cn.edu.tju.scs; 2 3 public class Sort { 4 publ ...

  9. 常见排序算法_解释的算法-它们是什么以及常见的排序算法

    常见排序算法 In its most basic form, an algorithm is a set of detailed step-by-step instructions to comple ...

  10. python实现常见排序算法

    python实现常见排序算法 快速排序 思想:取出第一个元素把它放到序列的中间某一个正确位置,以它进行分割成左边和右边,再分别对左边和右边进行取元素分割(递归) 递归实现 def quicksort( ...

最新文章

  1. 【java】异常的分类
  2. jquery 向上滚动【四】个人认为好一些,哈
  3. 3ds Max制作一面飘扬的旗帜效果图
  4. 【跃迁之路】【522天】程序员高效学习方法论探索系列(实验阶段279-2018.07.12)...
  5. 在Spring MVC Web应用程序中添加社交登录:集成测试
  6. 以计算机谈人文科学,阅读下面一段文字,完成问题   自20世纪80年代以来,世界都在谈“软科学技术”,何谓软科学?经常听人说:“脑子不够使。”这其实就是对软科学的需求。于是,从古至今,...
  7. OpenCV——读取视频文件并写入文件
  8. python爬虫循环表格xpath_python爬虫数据解析之xpath
  9. MATLAB-S函数
  10. stringbuilder_String,StringBuilder,StringBuffer三者的区别?
  11. Silverlight+WCF 新手实例 象棋 该谁下棋-A下B停(二十八)
  12. 小代码编写神器:LINQPad 使用入门
  13. fpga图片灰度处理
  14. 全国职业院校技能竞赛网络安全竞赛数据取证与分析思路分析
  15. 内存碎片产生原因及解决办法
  16. C++ STL详解超全总结(快速入门STL)
  17. python编程输入名字配对情侣网名_翻译:《实用的Python编程》01_05_Lists
  18. Robot Framework自定义测试库
  19. C/C++ 函数出入口
  20. 树莓派 小车java_树莓派小车之前进和后退(创乐博套件)

热门文章

  1. TiDB 源码阅读系列文章(二十)Table Partition
  2. linux 系统tty、pty和pts 的概念及区别
  3. Centos7安装hive
  4. Chrome快捷键, Mac 下 Chrome 浏览器 快捷键
  5. arcgis api for js入门开发系列四地图查询
  6. Windows 10部署与管理指南(1)之环境准备篇
  7. rownum与order by
  8. 修改Wordpress插件---advanced-access-manager.1.7.3---
  9. .NET 2.0 的压缩功能
  10. CHARINDEX 连同 SUBSTRING 对字符串删除处理...