给定一组数据,使用直插排序完成数据的升序排序。
--程序要求--
若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio
程序中若include多过一个头文件,不看代码,作0分处理
不允许使用第三方对象或函数实现本题的要求
标签:bsp delete ace sample include oid 函数 i++ ++
给定一组数据,使用直插排序完成数据的升序排序。
数据个数n,n个数据
直插排序的每一趟排序结果
#include<iostream> using namespace std; #define INF 0x7f int n; void printarray(int *array) { for(int i=0;i<n;i++) { if(i!=n-1) cout<<array[i]<<" "; else cout<<array[i]<<endl; } } void Insertsort(int *array) { int i,j,temp; for(i=1;i<n;i++) {///第一个元素已经放入作为已排序序列的第一个元素 temp=array[i];///依次取出未排序序列的第一个元素 for(j=i;j>=1&&array[j-1]>temp;j--) {///依次与已排序序列中元素比较并右移 array[j]=array[j-1]; } array[j]=temp;///此时j处腾空,放入待排序元素 printarray(array); } } int main() { cin>>n; int *array=new int[n]; for(int i=0;i<n;i++) cin>>array[i]; Insertsort(array); delete []array; return 0; }
标签:bsp delete ace sample include oid 函数 i++ ++
原文地址:https://www.cnblogs.com/SZU-DS-wys/p/12183070.html