插入排序思想:
插入排序的过程类似于打牌时起牌的过程,可以将牌分为两个部分,一部分为手中的已经排好序的牌,另一部分是还未排序的的牌,每起一张牌将它插入到已经排好序的牌堆当中,初始状态为已排序牌堆的牌数为1,终止结果为已排序的牌堆中牌的数目为n,即全部排好序。
输入:
n 待排序的数字的个数
待排序的n个数字
输出:
排好序的n个数字
#include <iostream> using namespace std; int main() { int n; int *data; int temp; cout<<"Please input the num:"<<endl; while(cin>>n) { if(n==0) continue; data=new int[n]; for(int i=0;i<n;i++) cin>>data[i]; for(int i=1;i<n;i++) { int j=i; while(j>0&&data[j]<data[j-1]) { temp=data[j]; data[j]=data[j-1]; data[j-1]=temp; j--; } } cout<<"After sorted:"<<endl; for(int i=0;i<n;i++) cout<<data[i]<<" "; cout<<endl<<"Please input the num:"<<endl; } }