美文网首页
插入排序 vs. 选择排序

插入排序 vs. 选择排序

作者: 多啦A梦的野比大雄 | 来源:发表于2020-05-25 13:11 被阅读0次
  1. 插入排序:复杂度\Theta(n^2)
    类似玩扑克时候的快速整理手中的牌的过程。我们每次拿到一张新的牌,会将其插入到已有的牌中的合适位置。
    插入排序每次循环开始前,第1...j-1个元素是已经排列好的,我们从后面未排列的元素中取第j个元素插入到前1...j-1个元素中的合适位置,插入后保持元素1...j的有序性。这样j递增n-1次后,所有的n个元素就排列好了。
#include <iostream>
using namespace std;

void insertion_sort(int A[],int length){
    for(int j=1;j<length;j++){
        int key=A[j];
        int i=j-1;
        while(i>=0&&A[i]>A[j]){
            A[i+1]=A[i];
            i--;
        }
        A[i+1]=key;
    }
}

int main(int argc, const char * argv[]) {
    int arr[]={1,3,2,5,88,9};
    int l=sizeof(arr)/sizeof(int);
    insertion_sort(arr,l);
    for(int i=0;i<l;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    return 0;
}
  1. 选择排序:复杂度\Theta(n^2)
    每次选择n个元素中第i个最小的元素,放到第i个位置上。
#include <iostream>
using namespace std;

void selection_sort(int A[],int length){
    for(int i=0;i<length-1;i++){
        int m=A[i],key=i;
        for(int j=i+1;j<length;j++)
            if(A[j]<m){
                m=A[j];
                key=j;
            }
        swap(A[i],A[key]);
    }
}

int main(int argc, const char * argv[]) {
    int arr[]={1,3,2,5,88,9};
    int l=sizeof(arr)/sizeof(int);
    selection_sort(arr,l);
    for(int i=0;i<l;i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    return 0;
}

相关文章

  • 插入排序 vs. 选择排序

    插入排序:复杂度类似玩扑克时候的快速整理手中的牌的过程。我们每次拿到一张新的牌,会将其插入到已有的牌中的合适位置。...

  • c算法O(n)^2(一)

    选择排序 插入排序 优化插入排序算法

  • IOS 常用算法

    一:排序算法 排序方式有插入排序,选择排序和交换排序三种。插入排序有直接插入排序和希尔排序。选择排序有简单选择排序...

  • Java排序算法

    插入排序 直接插入排序 折半插入排序 交换排序 冒泡排序 快速排序 选择排序 简单选择排序 堆排序 其他排序 二路...

  • iOS算法

    排序方法 选择排序:直接选择排序、堆排序。 交换排序:冒泡排序、快速排序。 插入排序:直接插入排序、二分法插入排序...

  • 九种排序算法(重要!!)

    分类:(九种排序算法) 1、插入排序:直接插入排序、二分插入排序、希尔排序; 2、选择排序:简单选择排序、堆排序 ...

  • 记录几个常见的排序算法

    常见的排序有:快速排序、冒泡排序、希尔排序、选择排序、插入排序、归并排序 冒泡排序: 插入排序: 选择排序: 希尔...

  • 给自己备份的排序代码

    交换排序 冒泡排序 快速排序 插入排序 直接插入排序 希尔排序 选择排序 简单选择排序 堆排序

  • 排序算法时间复杂度对比

    内排序主要分为四类:插入排序类、选择排序类、交换排序类、归并排序类。 插入排序类 直接插入排序 希尔排序 选择排序...

  • 排序 -- 选择/插入

    聊聊排序吧 冒泡排序 选择排序 插入排序 快速排序 归并排序 计数排序 桶排序 堆排序 本篇 选择排序与插入排序 ...

网友评论

      本文标题:插入排序 vs. 选择排序

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