#include <iostream> using namespace std; #include <tchar.h> #include <time.h> /* 插入排序:将其分成有序区域与无序区域, 每一趟将无序区域中的第一个数取出来,从有序区域的末端开始查找插入到有序区域中的合适位置, 并将插入点后面的有序区域后移 初始化:有序数为1个,无序数为length-1个 */ //插入排序(从小到大排) void InsertionSort(int array[],int length) { int key; //开始对无序区域的length-1个数进行逐个插入 for (int i = 1; i < length ;i++) { //保存需要插入的值 key = array[i]; //从有序数尾端查找,并将大的数进行后移 for (int j = i - 1; j >= 0 && key < array[j]; j--) { array[j+1] = array[j]; } //插入到合适点 array[j+1] = key; } } //产生随机数 int Randssd(int cap=0, int floor=100) //指定上下限 { int temp=-1; if (floor>=cap) { temp = ( rand()%(floor-cap) ) + cap; } else { cout << _T("输出有误"); } return temp; } int main() { //设置随机种子 //不设置的话总是第一次的数字 srand(time(NULL)); int iarray[100]; for (int i=0;i<100;i++) { iarray[i] = Randssd(0,100); } for (i=0;i<100;i++) { cout << iarray[i] << " "; } InsertionSort(iarray,100); cout << "/n/n"; for (i=0;i<100;i++) { cout << iarray[i] << " "; } return 0; }