七大排序算法总结

如下:

原文地址:https://www.cnblogs.com/wuguanglin/p/sortSumary.html

时间: 2024-12-20 02:19:25

七大排序算法总结的相关文章

七大排序算法

排序算法效率比较 各种排序算法的比较 冒泡排序 基本定义 两两比较相邻记录的的关键字,如果反序则交换,直到没有反序的记录为止. 时间复杂度分析 最好的情况是,数组是有序的,只需要n - 1次的比较,时间复杂度是O(n) 最坏的情况是,数组是逆序的,需要比较 ∑i=2n(i?1)=1+2+3+...+(n?1)=n(n?1)2 , 所以时间复杂度为O(n2) 代码实现 void Bubble_sort(int arr[], int len) { bool flag = true; for(int

常见的七大排序算法Java实现

/** * @author Javen * @Email [email protected] * 2015年12月9日 */ public class Sorting { static int[] array = new int[]{11, 31, 12, 5, 34, 30, 26, 38, 36, 18}; public static void main(String[] args) { //插入排序 System.out.println(array2String(sortInsert(ar

七大排序算法java实现

/** * 1.插入排序算法 * @param int[]  未排序数组 * @return int[]  排完序数组 * * 插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序, * 本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过程中逐个将比较过的元素往后移一位, * 为元素 x "腾位置",最后将 k 对应的元素值赋为 x * * 一般情况下,插入排序的时间复杂度和空间复杂度分别为 O(n2 ) 和

常用的七大排序算法

1:冒泡排序: // BubbleSort.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using namespace std; /* 冒泡排序是稳定排序 时间复杂度是 O(n^2) */ void Swap(int& a, int& b) { int temp = a; a = b; b = temp; } void BubbleSort(int a[], int n) {

七大排序算法(冒泡,选择,插入,希尔,快速,合并,堆排序)的java实现

冒泡排序 思路:就是每次将最大或最小的元素放到数组的最后,so easy!时间复杂度为(O(n^2)) public class BubbleSort { public static void bubbleSort(int[] a) { for (int j = 1; j < a.length; j++) { for (int i = 0; i < a.length - j; i++) { if (a[i] > a[i + 1]) { int temp = a[i]; a[i] = a[

常用七大排序算法总结(C语言描述)

目录 其中排序算法总结如下: 一.交换排序 交换排序的基本思想都为通过比较两个数的大小,当满足某些条件时对它进行交换从而达到排序的目的. 1.冒泡排序 基本思想:比较相邻的两个数,如果前者比后者大,则进行交换.每一轮排序结束,选出一个未排序中最大的数放到数组后面. #include<stdio.h> //冒泡排序算法 void bubbleSort(int *arr, int n) { for (int i = 0; i<n - 1; i++) for (int j = 0; j <

Java常用的7大排序算法汇总(转载)

这段时间闲了下来,就抽了点时间总结了下java中常用的七大排序算法,希望以后可以回顾! 1.插入排序算法 插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过程中逐个将比较过的元素往后移一位,为元素 x “腾位置”,最后将 k 对应的元素值赋为 x ,一般情况下,插入排序的时间复杂度和空间复杂度分别为 O(n2 ) 和 O(1). /** * @param int[]

java常用的7大排序算法汇总

这段时间闲了下来,就抽了点时间总结了下java中常用的七大排序算法,希望以后可以回顾! 1.插入排序算法 插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过程中逐个将比较过的元素往后移一位,为元素 x "腾位置",最后将 k 对应的元素值赋为 x ,一般情况下,插入排序的时间复杂度和空间复杂度分别为 O(n2 ) 和 O(1). 1 2 3 4 5 6 7

七大内部排序算法总结(插入排序、希尔排序、冒泡排序、简单选择排序、快速排序、归并排序、堆排序)

 写在前面: 排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列.因此排序掌握各种排序算法非常重要.对下面介绍的各个排序,我们假定所有排序的关键字都是整数.对传入函数的参数默认是已经检查好了的.只是简单的描述各个算法并给出了具体实现代码,并未做其他深究探讨. 基础知识: 由于待排序的记录数量不同,使得排序过程中设计的存储器不同,可将排序方法分为两大类:一类是内部排序,指的是待排序记录存放在计算机随机存储器中进行的排序过程.另一类是外部排序,