排序小结

也学习了一段时间的ACM , 是该对所有的排序做个小结。

排序的分类:

  1 . 冒泡排序 ( 类似于吐泡泡的方式,每次比较相邻的元素,视情况决定是否交换 )。

  2 . 选择排序 ( 此方法是从一组数据中选择出最大的或者最小的数  ) 。

  3 . 插入排序

  4 . 希尔排序

  5 . 归并排序

  6 . 桶排序

算法的时间复杂度 :

  

时间: 2024-10-18 02:15:52

排序小结的相关文章

排序小结 sort

排序小结 排序算法是基础之基础.在这里小结一下.方便自己查阅和学习. 1.冒泡排序(BubbleSort) 思想:比较相邻的两个元素,如果前面的元素大于后面的元素,交换之. 思路:采用双层循环.外循环控制要处理多少趟.里面循环用来做元素的交换操作.注意上下界. 稳定性:稳定 时间复杂度:O(n2) void bubbleSort(int a[], int size) { int tmp; for (int i = 0; i < size; i++) { //每一趟都会把最大的元素放入最右边的位置

算法导论6:排序小结和最值取法 2016.1.6

今天想做测试各个排序算法运行时间比较的程序,来对这几天学的排序算法小结一下.所以我先生成了1000000个1~150之间的随机数存到文件里.然后做了一个测试运行时间的程序.想看一下结构.但是结果效果并不太好.实践中,自己做的qsort函数和mergesort函数并没有理想中的那么快. 结果是这样:(可能并不准确,但却是是运行结果) 库函数快速排序:0.139000 seconds自制快速排序:0.375000 seconds归并排序:0.358000 seconds堆排序:0.525000 se

希尔排序小结

希尔排序 希尔排序就是将给定数组分成多个部分,进行插入排序.每次分组步长gap为n/2,即是每隔gap的数都是一组的.简单的说如果一个数组长度为10{0,1,2,3,4,5,6,7,8,9},gap为2时,那么0,2,4,6,8,为一组,1,3,5,7,9为一组.然后分别对这两组进行插入排序.gap一般定为n/2,以此循环下去,n/2/2,每次步长为上一次的一半,直到gap==1时,那么在n==1完成后,最终排序也就完成了. 希尔排序图 如上图数组颜色一样的为一组,然后对这一组,进行插入排序.初

选择排序小结

选择排序 思路: 1.给定一组数组,从数组中找出最小的元素 2.最小元素和第一个元素交换. 3.从除去第一个元素外,在找最小值,与第二个位置元素交换. 4.以此循环. 排序图: Java代码实现: /** * 选择排序 */ public static void selectSort(int[] a) { if (a == null || a.length <= 0) { return; } for (int i = 0; i < a.length-1; i++) { /** * 记录标识 *

根据list中对象的属性去重和排序小结

//去重 public class User { private int id; private String name; private int age; public User(){} public User(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(

查找与排序小结

//顺序查找 //主要是为了说明引入"哨兵"的作用 typedef struct { //查找表的数据结构 ElemType *elem; //元素存储空间基址,建表时按实际长度分配,0号单元留空 int TableLen; //表的长度 }SSTable; int Search_Seq(SStable ST,ElemType key){ //顺序表ST中顺序查找键字为key的元素.若找到则返回该元素在表中的位置 ST.elem[0]=key; //"哨兵" for

经典排序:冒泡排序+选择排序 小结

经典排序:冒泡排序+选择排序 例 FJUTOJ 1842 冒泡排序 原理是取相邻两个数进行大小比较,判断是否交换. 以从小到大排序为例,冒泡排序就像气泡一样,最小的数慢慢浮上来,最大的数慢慢沉下去.那么完整从头到尾做一次之后最后一位就是原序列中最大的数字了.然后只需要对1~(n-1)个数字进行排序,完成后倒数第二个数字也为原序列的1~n-1元素中最大的值.如此重复,进行n-1次一定能完成排序.参考代码: 1 #include <stdio.h> 2 void BubbleSort(int *,

Java8排序小结

1.概述 首先,让我们先定义一个简单的实体类: @Data public class Human { private String name; private int age; public Human() { super(); } public Human(final String name, final int age) { super(); this.name = name; this.age = age; } } 2.不使用Lambda表达式的基本排序 在Java 8之前,对集合进行排序

排序概述(c语言)

排序问题可以说是算法入门中的入门了,可尽管如此,算法这个东西还是让许多初学者伤透了脑筋(such as me~).But,然而,但是,排序小结来了(基于c语言),希望能给读者包括笔者本身带来理解上的新体验. 1.冒泡排序. 所谓冒泡排序,从字面就可大体了解,对一系列数,对满足条件的数,让其依次"冒泡浮出".其基本思路是:每次将相邻两个数进行比较,将小的数(或大的数,看你需要逆序还是顺序)调到前头去.这样,假如有6个数,我们第一次检索这六个数,找出最小的放在第一个位置上:再进行下一次检索