快速
include [HTML_REMOVED]
include [HTML_REMOVED]
int secT(int left,int right,int c[]){
int temp = 0;
int mid = (left + right)/2;
int pivot = c[right];
while(left < right){
while(c[left][HTML_REMOVED]pivot){right–;}
temp = c [right];
c[right] = c[left];
c[left] = temp;
}
return right;
}
int Quick(int left,int right,int c[]){
if(left<right){
int pivot = secT(left,right,c);
Quick(left,pivot-1,c);
Quick(pivot+1,right,c);
}
}
void main(){
int d;
scanf(“%d”,&d);
int e[d];
for(int i=0;i<d;i){
scanf(“%d”,&e[i]);
}
Quick(0,d-1,e);
for(int j=0;j<d;j){
printf(“%d “,e[j]);
}
}
#include [HTML_REMOVED]
#include [HTML_REMOVED]
int main() {
int a;
int min=1000000000;
scanf(“%d\n”,&a);
int e[a];
int f[a];
for(int i=0;i[HTML_REMOVED]=0&&e[i]>min){
if(e[j]<e[i])
{
f[i]=e[j];
}
j–;
}
}
for(int i = 0;i<a;i++){
printf(“%d “,f[i]);
}
}
#include [HTML_REMOVED]
#include [HTML_REMOVED]
#include [HTML_REMOVED] // 用于 strcmp
int stackTop = 0; // 栈顶指针(指向下一个空闲位置)
int stack[100]; // 栈空间
void stackPush(int data) {
stack[stackTop++] = data; // 存入数据并移动栈顶
}
void stackPop() {
if (stackTop > 0) stackTop–; // 只需移动栈顶指针
}
int stackQuery() {
return (stackTop == 0) ? 0 : stack[stackTop - 1]; // 返回栈顶元素
}
const char* stackEmpty() {
return (stackTop == 0) ? “YES” : “NO”; // 直接返回字符串
}
int main() {
int n, x;
char cmd[10]; // 存储命令(如 “push”、”pop” 等)
scanf(“%d”, &n);
for (int i = 0; i < n; i++) { scanf("%s", cmd); // 读取命令字符串 if (strcmp(cmd, "pop") == 0) { stackPop(); } else if (strcmp(cmd, "push") == 0) { scanf("%d", &x); stackPush(x); } else if (strcmp(cmd, "query") == 0) { printf("%d\n", stackQuery()); // 输出栈顶元素 } else if (strcmp(cmd, "empty") == 0) { printf("%s\n", stackEmpty()); // 输出是否为空 } } return 0;
}
int main(){
int flag = 0;
int a=0;
int b=0;
scanf(“%d %d\n”,&a,&b);
int c[a];
for(int i =0;i<a;i){
scanf(“%d”,&c[i]);
}
int d[b];
for(int i = 0;i<b;i){
scanf(“%d\n”,&d[i]);
}
int e[2b];
for(int i = 0;i<2b;i){
e[i]=-1;
}
for(int i = 0; i < b; i) {
int first = -1, last = -1;
for(int j = 0; j < a; j) {
if(d[i] == c[j]) {
if(first == -1) {
first = j;
}
last = j;
}
}
e[i2] = first;
e[i2+1] = last;
}
for(int i=0;i<b;i){
printf(“%d %d\n”,e[i2],e[i2+1]);
}
}
#include [HTML_REMOVED]
#include [HTML_REMOVED]
int merge(int a,int b,int mid,int c[])
{
int j=mid+1;
int d[b-a+1];
int i=a;
int h=0;
while(i<=mid&&j<=b)
{
if(c[i]<c[j])
{
d[h]=c[i];
}
else{
d[h]=c[j];
}
}
while(i<=mid)d[h]=c[i];
while(j<=b)d[h]=c[j];
for(int n=0;n<h;)
{
c[a]=d[n];
}
}
int GuiBing(int a,int b,int c[])
{
if(a<b){
int mid = (a+b)/2;
GuiBing(a,mid,c);
GuiBing(mid+1,b,c);
merge(a,b,mid,c);
}
}
void main(){
int f;
scanf(“%d”,&f);
int e[f];
for(int i=0;i<f;i)
{
scanf(“%d”,&e[i]);
}
GuiBing(0,f-1,e);
for(int i=0;i<f;i)
{
printf(“%d “,e[i]);
}
}
归并