几种简单排序算法的比较

名称 最好时间 最坏时间 是否稳定
冒泡  O (n^2) O (n^2)
插入 O (n) O (n^2)
选择  O (n^2) O (n^2)
快排 O (nlgn) O (n^2)
归并 O(nlgn)  
基数  O(d*(n+rd))  
堆排序 O(nlgn) O(nlgn)
希尔排序 O(n^1.5)左右  
时间: 2024-07-28 13:02:12

几种简单排序算法的比较的相关文章

算法:三种简单排序算法

排序算法比较常见的有:冒泡排序.简单选择排序.直接插入排序:希尔排序.堆排序.归并排序和快速排序算法等.今天先学习一下前面三种比较简单的算法.排序的相关概念: ①排序的稳定性:两个或多个元素相等,排序过后仍然是原来的顺序则为稳定排序. ②内部排序:排序过程都在内存中进行:外部排序:需要对外存进行访问的排序过程. ③内排序算法性能因素:1.时间性能,比较与移动:2.辅助空间:3.算法复杂性 实例:冒泡排序.简单选择排序与直接插入排序 #include "stdio.h" #define

几种简单排序算法

最简单的排序算法——冒泡排序: 1 void bubble_sort(int *arr, int len) 2 { 3 int up, down; 4 for(up = 0; up != len; ++ up) 5 { 6 for(down = 0; down != len - up - 1; ++ down) 7 { 8 if(arr[down] > arr[down + 1]) 9 swap(arr[down], arr[down + 1]); 10 } 11 } 12 } 还有一种思路,就

三种简单排序算法(java实现)

一.冒泡排序 算法思想:遍历待排序的数组,每次遍历比较相邻的两个元素,如果他们的排列顺序错误就交换他们的位置,经过一趟排序后,最大的元素会浮置数组的末端.重复操                   作,直到排序完成. 示例演示: 算法实现: 1 for(int i=0;i<array.length-1;i++){//最多排序n-1次 2 for(int j=0;j<array.length-i-1;j++){//需要交换的次数 3 if(array[j]>array[j+1]){ 4 i

七种常用排序算法

七种常用排序算法 一.常见排序算法一览: 时间复杂度: 是一个函数,它定量描述了该算法的运行时间. 空间复杂度:一个算法在运行过程中临时占用存储空间大小的量度. 稳定性:保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同就稳定,反之不稳定. 视觉直观感受 7 种常用的排序算法 二.算法C#实现: 1. 直接插入排序: using System; using System.Collections.Generic; using System.Linq; using Sys

数据结构——排序——8种常用排序算法稳定性分析

首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同.在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前. 其次,说一下稳定性的好处.排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用.基数排序就是这样,先按低位排序,逐次按高位排序,低位相同的元素其顺序再高位也相同时是不会改变的.另外,如果排序算法稳定,对基于比较的排序算法而言

七种经典排序算法最全攻略

经典排序算法在面试中占有很大的比重,也是基础.包括冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序.希望能帮助到有需要的同学.全部程序采用JAVA实现. 本篇博客所有排序实现均默认从小到大. 一.冒泡排序 BubbleSort 介绍: 冒泡排序的原理非常简单,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来. 步骤: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对第0个到第n-1个数据做同样的工作.这时,最大的数就"浮"到了

简单排序算法设计(Java)

总共有八种排序算法,还是慢慢看吧 1.简单排序算法 简单排序算法就是设置标兵,逐个比较数,然后查找插入位置,插入 public static void p(int[] a){ for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } } public static void sorting(int[] a){ int m =a.length; for(int i=1;i<m;i++){ if(i==1){ if(a

PHP四种基本排序算法

PHP的四种基本排序算法为:冒泡排序.插入排序.选择排序和快速排序. 下面是我整理出来的算法代码: 1. 冒泡排序: 思路:对数组进行多轮冒泡,每一轮对数组中的元素两两比较,调整位置,冒出一个最大的数来. //简单版: function bubbleSort($arr) { $n = count($arr); for($i=1;$i<$n;$i++) {   //冒泡的轮数(最多$n-1轮) for($j=0;$j<$n-1;$j++) {   //每一轮冒泡(两两比较,大者后移) if($a

数据结构与算法分析之简单排序算法

在排序算法中,简单排序主要有三种,分别为冒泡排序.选择排序.插入排序,学习理解好这三种排序算法有助于进一步研究数据结构与算法分析.下面,简单地谈一谈冒泡排序.选择排序.插入排序的原理及区别. 冒泡排序原理: 1.比较相邻的元素.如果前一个比后一个大,它们就交换. 2.每对元素都要进行同样的动作,从后往前比较. 3.每趟都会确定一个位置的元素,因此n个元素,需要n-1趟才能确定各个元素的位置. 例如:对23,4,56,11四个数进行冒泡排序. 第一趟 4,23,11,56 第二趟 4,11,23,