美文网首页
排序算法记录

排序算法记录

作者: Erzyb | 来源:发表于2017-11-02 16:41 被阅读0次

排序算法


冒泡排序(bubble sort)

优化后时间复杂度是O(n)

do
    swapped = false
    for i = 1 to indexOfLastUnsortedElement - 1
        if leftElement > rightEmement
            swap(leftElement,rightElement)
            swapped = true
while swapped

选择排序(selection sort)

repeat (numOfElements -1) times
    set the forst unsorted element as the minimum
    for each of the unsorted elemenys
        if element < currentMinimum
            set element as new minimum
    swap minimum with first unsort position

插入排序(insertion sort)

mark first element as sorted
for each unsorted element X
    'extract' the element X
    for j =  lastSortedIndex down to 0
        if current element j > X
            move sorted element to the right by 1
        break loop and insort X here

归并排序(merge sort)

split each element into partitions of size 1
recursively merge adjancent partitions
  for i = leftPartStartIndex to rightPartLastIndex inclusive
    if leftPartHeadValue <= rightPartHeadValue
      copy leftPartHeadValue
    else: copy rightPartHeadValue
copy elements back to original array

快速排序(quick sort)

for each (unsorted) partition
set first element as pivot
  storeIndex = pivotIndex + 1
  for i = pivotIndex + 1 to rightmostIndex
    if element[i] < element[pivot]
      swap(i, storeIndex); storeIndex++
  swap(pivot, storeIndex - 1)

随机快速排序在数据量大时优于快速排序

计数排序(countion sort)

create key (counting) array
for each element in list
  increase the respective counter by 1
for each counter, starting from smallest key
  while counter is non-zero
    restore element to list
    decrease counter by 1

基数排序(radix sort)

create 10 buckets (queues) for each digit (0 to 9)
for each digit placing
  for each element in list
    move element into respective bucket
  for each bucket, starting from smallest digit
    while bucket is non-empty
      restore element to list

相关文章

  • 排序算法总结

    排序算法 排序算法可以分为内部排序和外部排序 内部排序:数据记录在内存中进行排序。 外部排序:排序的数据很大,排序...

  • 10分钟看懂10大经典算法(Swift代码实现)

    排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进...

  • 排序算法

    排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中...

  • Python实现十大经典排序算法

    排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进...

  • python 简单排序

    数据结构与算法 01 我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分...

  • 2018-09-08

    排序算法 我们通常所说的排序算法是指内部排序算法,即数据记录在内存中进行排序。 排序算法大致分为两种: 一种是比较...

  • 插入排序算法实现

    排序算法是最常见,最基础的算法,作者文集中记录了两种排序算法(插入排序,归并排序) 插入排序算法实现很简单直接,附...

  • 数据结构与算法(二)

    排序算法 1.内部排序:数据记录在内存中进行排序 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归...

  • 排序笔记1----冒泡,选择,插入,希尔排序

    一、排序简介 我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分为两种:...

  • 希尔排序

    算法学习记录-排序——希尔排序 - sjdang - 博客园iOS算法总结-希尔排序 - 简书 与插入排序不同,我...

网友评论

      本文标题:排序算法记录

      本文链接:https://www.haomeiwen.com/subject/ptcapxtx.html