C++(排序算法二)练习题

发布时间:2026/6/1 20:48:24

C++(排序算法二)练习题 数字排序【描述】输入n个数,对这n个数按从小到大的顺序排序【输入】输入数据的第一行为正整数n,2≤n≤20;第二行有n个整数,用空格隔开。【输出】输出占一行,为排序后的n个整数,用空格隔开。【样例输入】849 38 65 97 76 13 27 30【样例输出】13 27 30 38 49 65 76 97#includeiostreamusingnamespacestd;intmain(){intn,a[22],b[22];//存储输入的n个数及排序后的n个数inti,j,k;//循环变量intpos;//每个数的插入位置cinn;for(i=0;in;i++)//输入cina[i];for(i=0;in;i++){//将a[i]插入合适的位置//在数组b中,b[0]~b[i-1]已经有序了,给a[i]找到合适位置(1)for(j=0;j=i-1;j++)if(b[j]a[i])break;pos=j;//a[i]的插入位置for(k=i-1;k=pos;k--)//将b[pos]~b[i-1]后移一个位置(2)b[k+1]=b[k];b[pos]=a[i];//将a[i]放置在b[pos]在b[pos]位置上(3)}for(i=0;in;i++)//输出coutb[i]" ";coutendl;return0;}/* 【输入用例2】 2 5 3 【输出用例2】 3 5 【输入用例3】 5 2 2 1 3 2 【输出用例3】 1 2 2 2 3 【输入用例4】 6 6 5 4 3 2 1 【输出用例4】 1 2 3 4 5 6 【输入用例5】 4 7 7 7 7 【输出用例5】 7 7 7 7 【输入用例6】 9 49 38 65 97 76 13 27 30 89 【输出用例6】 13 27 30 38 49 65 76 89 97 */整数奇偶排序【描述】给定10个整数的序列,要求对其重新排序。排序要求:1.奇数在前,偶数在后;2.奇数按从大到小排序;3.偶数按从小到大排序。【输入】输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于30000。【输出】按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。【输入样例】4 7 3 13 11 12 0 47 34 98【输出样例】47 13 11 7 3 0 4 12 34 98#includebits/stdc++.husingnamespacestd;intc,a[100],b[100]

相关新闻