一.插入排序的思想
给一个无序的数组,经过插入排序后变为有序的数组。插入排序,顾名思义,就是把某个元素插入到属于自己的位置上去。我们从第二个元素开始(因为一个元素肯定是有序的),将所在位置左边全部变成局部有序的。我们一个元素一个元素去将它放到位置上,直到最后一个元素结束.此时,我们就获得到了一个有序的数组。
二.图解插入排序(图像来自insertionSort.gif (811×505) (runoob.com) 20230513 21:51
https://www.runoob.com/wp-content/uploads/2019/03/insertionSort.gif)
三.C++ 代码实现
// // Created by 18751 on 2023/5/13. // #include<iostream> using namespace std; void insertSort(int*,int); void show(int*,int); int main(){ int arr[] = {9,8,7,6,5,4,3,2,1}; int size = sizeof(arr)/sizeof(arr[0]); cout<<"初始状态的数组为:"; show(arr,size); insertSort(arr,size); cout<<"排序完成后的数组:"; show(arr,size); return 0; } void insertSort(int* arr,int size){ int j; for (int i = 1; i < size; ++i) { int temp=arr[i]; j=i-1; while((j>=0)&&(arr[j]>temp)){ arr[j+1]=arr[j]; j--; } arr[j+1]=temp; } } void show(int* arr,int size){ for (int i = 0; i < size; ++i) { std::cout<<arr[i]<<" "; } cout<<endl; }
代码结构:main函数负责调用,insertSort函数负责对数组的曹祖,show函数负责输出数组。