在学习新技术的同时,我们还应该时刻复习自己已学过的数据结构和经典算法。

一、最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是“最轻”元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。时间复杂度 o(n^2);空间复杂度 o(1);比较次数 n(n+1)/2

代码:(vs2005中编译通过)

View Code

 1 public static int[] SortIntArray(int[] array)
 2         {            
 3             int temp=0;
 4             for (int i = 0; i < array.Length; i++)
 5             {
 6                 for (int j = i+1; j < array.Length; j++)
 7                 {
 8                     if (array[i] > array[j])
 9                     {
10                         temp = array[i];
11                         array[i] = array[j];
12                         array[j] = temp;
13                     }
14                 }
15             }
16             return array;            
17         }

c#排序算法(待续)相关推荐

  1. 排序算法-- 大总结

    一.冒泡排序: 1.概念 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成. 2.复杂度分析 ...

  2. 数据结构排序算法实验报告_[数据结构与算法系列]排序算法(二)

    我的上一篇文章向大家介绍了排序算法中的冒泡排序.插入排序和选择排序.它们都是平均时间复杂度为 O(n^2) 的排序算法,同时还为大家讲解了什么是原地排序和什么是排序的稳定性.下图是这三种算法的比较,不 ...

  3. 【代码刷题】排序算法总结(python实现)

    排序算法总结(Python实现) 算法介绍 算法分类 相关概念 1. 冒泡排序(Bubble Sort) 1.1 思想 1.2 python实现 1.3 复杂度 1.4 稳定性 2. 快速排序(Qui ...

  4. 基本排序算法 【转载】

    基本排序算法 基于比较的排序 冒泡排序 没什么可说的, 改进方法就是加一个标志位防止有序后重复遍历. 由于需要遍历两次, 所以时间复杂度O(N^2) 传送门 --> 冒泡排序 选择排序 外层从0 ...

  5. 排序算法7——归并排序

    [归并排序] 归并排序的算法思想:将两个或两个以上的元素有序序列合并为一个有序序列.其中,二路归并排序是最常见的归并排序. [算法思想] 二路归并排序的主要算法思想是:假设元素个数是n,将每个元素作为 ...

  6. 十大排序算法解析与实现

    未完待续- #include<string.h> #include<iostream> #include<stdio.h> #include<malloc.h ...

  7. 排序算法 | sort函数的使用

    除了我们自己写的排序算法:冒泡排序.选择排序等,C语言中提供了库函数qsort或者C++中提供了sort函数可以直接调用进行排序.考虑到qsort函数的使用需要用到指针,且写法上也没有sort函数简洁 ...

  8. 几种常用的排序算法(c语言实现)

    概述 最近重新回顾了一下数据结构和算法的一些基本知识,对几种排序算法有了更多的理解,也趁此机会通过博客做一个总结. 1.选择排序-简单选择排序 选择排序是最简单的一种基于O(n2)时间复杂度的排序算法 ...

  9. 伍六七带你学算法 进阶篇-排序算法

    给定一个整数数组 nums,将该数组升序排列. 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 各排序算 ...

最新文章

  1. Java并发必知必会第三弹:用积木讲解ABA原理
  2. java awt canvas_JavaFX AWT Canvas
  3. LAS点云查看 转换格式
  4. matlab中图像轮廓变细,Matlab中,用bwmorph函数提取二进制图像的轮廓
  5. Oracle访问同义词连接超时,利用同义词解决oracle用户访问其它schema的对象
  6. 【华为云实战开发】11.如何快速开展嵌入式开发项目?
  7. python pip有什么用_pip的介绍和使用
  8. 这些年,我们无法忘却的jQuery日历插件
  9. java中max的意义_[Java] xms xmx XX:PermSize XX:MaxPermSize 参数意义解析
  10. 四、Hyper-v Server 2008r2 设置远程管理
  11. php 公众号采集器,别跑,教你微信公众号文章采集! - 八爪鱼采集器
  12. jenkins 插件_Jenkins通过Ruby插件赢得了新的皇冠
  13. 使用java实现简单推箱子游戏
  14. MySQL 的 max_allowed_packet
  15. python羊车门问题的正确解答
  16. 电力系统中无线测温装置的设计与应用
  17. 解决console控制台反复打印“WebSocket connection to ws://localhost:9528/sockjs-node/107/uadaszgz.websocket fai
  18. 服务网格——后 Kubernetes 时代的微服务(前言)
  19. 面向数据机密性的云计算脆弱性分析框架
  20. RSA的dp泄露 —— 【WUST-CTF2020】leak

热门文章

  1. MYSQL-用户操作
  2. 爆牙齿的新发现:先clear:left才能正常position:absolute。
  3. 产品复盘 | 字节跳动-飞书团队工作1年收获
  4. 为什么你今年的去哪儿产品经理面试挂了?
  5. 【分析】2014移动互联网数据报告(终极版必收!)
  6. 【运营】运营必看!如何吸引用户主动的参与活动?
  7. 要嫁就嫁程序员!原因很简单:五成表示工资愿交给另一半!
  8. appium 自动化测试之知乎Android客户端
  9. rman-incarnation
  10. C++构造函数和文件组织