1.插入排序
插入排序(Insertion Sort)介紹:
插入排序是一種簡單直觀的排序算法,它的工作原理類似于我們整理撲克牌的方式。
1.基本思想
插入排序的基本思想是:
1.將數組分為已排序和未排序兩部分
2.每次從未排序部分取出第一個元素
3.將該元素插入到已排序部分的正確位置
4.重復這個過程直到所有元素都被排序
2.算法步驟
1.從第一個元素開始,該元素可以認為已經被排序
2.取出下一個元素,在已經排序的元素序列中從后向前掃描
3.如果該元素(已排序)大于新元素,將該元素移到下一位置
4.重復步驟3,直到找到已排序的元素小于或者等于新元素的位置
5.將新元素插入到該位置后
6.重復步驟2~5
3.動圖示例
4.C++代碼實現:
#include <iostream>
using namespace std;void insertsort(int arr[],int sz)
{for(int i=1;i<sz;i++){int j = i;int tmp = arr[i];while(j>=1&&tmp<arr[j-1]){arr[j]=arr[j-1];j--;}arr[j]=tmp;}
}int main() {int arr[]={98,87,76,65,54,43,32,21};int sz = sizeof(arr)/sizeof(arr[0]);insertsort(arr,sz);for(int i=0;i<sz;i++){cout<<arr[i]<<" ";}return 0;
}
冒泡,插入,選擇都是很基礎的排序算法。