一、简述
插入排序是一种简单的排序算法,其核心思想是将未排序部分的元素逐个插入到已排序部分的正确位置。
二、详细代码
#include<iostream>
using namespace std;
int InsertSort(int arr[], int size)
{
int x, i;
for( int j = 1; j < size; j++)
{
x = arr[j];
i = j - 1;
while( i >= 0 && x < arr[i])
{
arr[i+1] = arr[i];
i = i - 1;
}
arr[i+1] = x;
}
for(int s = 0; s < size; s++)
{
cout<<arr[s];
}
cout<<endl;
}
int main()
{
int size;
std::cout<<"Enter size:";
std::cin>>size;
int* arr =new int[size];
for(int i = 0;i<size;i++)
{
cout<<"arr element:";
cin>>arr[i];
}
InsertSort(arr,size);
delete[] arr;
return 0;
}
三、说明
InsertSort功能
-
InsertSort 函数用于对数组进行插入排序。
参数
-
arr[]
:待排序的数组。 -
size
:数组的大小。
变量
-
x:当前待插入的元素。
-
i:已排序部分的最后一个元素的索引。
算法步骤
-
从第二个元素开始遍历数组(
j = 1
)。 -
将当前元素
arr[j]
赋值给x
。 -
从
j - 1
开始向前遍历已排序部分,找到x
的正确位置:-
如果
x < arr[i]
,则将arr[i]
向后移动一位。 -
否则,跳出循环。
-
-
将
x
插入到正确位置arr[i + 1]
。 -
遍历结束后,输出排序后的数组。