1.直接插入排序
將數組中的所有元素依次跟前面已經排好的元素相比較,如果選擇的元素比已經排序的元素小,則交換,直到全部元素都比較過。
1)第一層循環,遍歷待比較的所有數組元素;
2)第二層循環,將本輪選擇的元素與已經排好序的元素相比較;
2.圖例
3.算法
//直接插入排序
//參數1:數組
//參數2:元素個數
void insertSort(int *arr,int num)
{
for (int i = 1;i < num;i++)
{
for (int j = i; j > 0; j--)
{
if (arr[j] < arr[j - 1])
{
//交換元素
swap(arr[j - 1], arr[j]);
}
}
}
}
//打印數組
void printArr(int *arr, int num)
{
for (int i = 0;i < num;i++)
{
cout << arr[i] << " ";
}
}
int main()
{
int a[] = { 9,1,2,0,7,4,8,6,3,5 };
cout << "排序前: " << endl;
printArr(a, 10);
insertSort(a, 10);
cout << "\n";
cout << "排序後: " << endl;
printArr(a, 10);
return 0;
}
4.運行結果