W18 插入排序
#include
using namespace std;void InsertSort(int a[], int n)
{for (int j = 1; j < n; j++){int key = a[j]; //待排序第一个元素int i = j - 1; //代表已经排过序的元素最后一个索引数while (i >= 0 && key < a[i]){//从后向前逐个比较已经排序过数组,如果比它小,则把后者用前者代替,//其实说白了就是数组逐个后移动一位,为找到合适的位置时候便于Key的插入a[i + 1] = a[i];i--;}a[i + 1] = key;//找到合适的位置了,赋值,在i索引的后面设置key值。}
}int main() {int d[] = { 12, 15, 9, 20, 6, 31, 24 };cout << "输入数组 { 12, 15, 9, 20, 6, 31, 24 } " << endl;InsertSort(d,7);cout << "排序后结果:";for (int i = 0; i < 7; i++){cout << d[i]<<" ";}return 0; }
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
