直接插入排序
实现过程
假设最开始的有序序列中只有数组内的第一个元素,将数组剩下的其他元素依次按序插入到之前排好的有序序列中.
代码实现
int main() {
//定义一个容量为10的数组
int array[] = {12, 23, 43, 33, 44, 55, 32, 45, 54, 22};
//假设最开始的有序序列中只有数组中的第一个元素
//从第二个元素开始依次插入到之前的有序序列中
for (int i = 1; i < 10; i++) {
//假如第i个待插入的元素的值比第i-1个元素的值小
if (array[i] < array[i - 1]) {
//将第i个元素暂时存储
int temporary = array[i];
int j = 0;
//确定第i个元素的插入位置
for (j = i; j > 0 && temporary < array[j - 1]; j--)
//将比第i个元素大的元素后移
array[j] = array[j - 1];
//将第i个元素放到之前找到的插入位置中
array[j] = temporary;
}
}
//将排好序的数组进行输出
for (int i = 0; i < 10; i++) {
cout << array[i] << " ";
}
cout << endl;
return 0;
}
程序输出:12 22 23 32 33 43 44 45 54 55