排序之插入排序

来源:互联网 发布:淘宝生意参谋 编辑:程序博客网 时间:2024/06/06 04:21

实质:若开始插入第n个元素,则前n-1个元素都已经排序成(即将第n个元素插入前面已经排序好的n-1元素个中),将该元素与前一个元素相比,比较两个大小关系来判断两个数是否需要交换,以此类推,直到找到该元素的合适位置。


C++按从小到大排列代码:

#include <iostream>using namespace std;void output(int m[5]);int main(){const int i = 5;int a[i] = { 56, 23, 15, 452, 32 };output(a);for (int n = 1; n < i; n++){int key,m;key = a[n];m = n - 1;while (m > -1 && a[m] > key){a[m + 1] = a[m];m = m - 1;}//若比前一个元素小,则将前一个元素向后移动一位a[m + 1] = key;//找到需要插入的元素的位置}output(a);system("pause");}void output(int m[5]){for (int i = 0; i < 5; i++){cout << m[i] << " ";}cout << endl;}


C++按从大到小排列代码:

#include <iostream>using namespace std;void output(int m[10]);int main(){const int i = 10;int a[i] = { 56, 23, 15, 452, 32,1,56,89,32,96 };output(a);for (int n = 1; n < i; n++){int key,m;key = a[n];m = n - 1;while (m > -1 && a[m] < key){a[m + 1] = a[m];m = m - 1;}//若比前一个元素大,则将前一个元素向后移动一位a[m + 1] = key;//找到需要插入的元素的位置}output(a);system("pause");}void output(int m[10]){for (int i = 0; i < 10; i++){cout << m[i] << " ";}cout << endl;}



原创粉丝点击