求助,使用插入排序后三个例子不能通过
查看原帖
求助,使用插入排序后三个例子不能通过
881577
zx142407789楼主2023/9/7 12:51
#include<stdio.h>
#include<stdlib.h>
void InsertSort(int* data, int m);
void read(int* data, int m);
void putout(int* data, int m);
int main() {
	int n;
	long long int m;
	scanf("%d %lld", &n, & m);
	if (n >= 999 || n < 0) return 0;
	if (m >= 2000000 || m < 0)return 0;

	int* a = malloc(sizeof(int) * m);
	read(a, m);
	InsertSort(a, m);
	putout(a, m);
	return 0;

}

void read(int* data,int m) {
	for (int i = 0; i < m; i++) {
		scanf("%d", &data[i]);
	}
	return 0;
}
void putout(int* data, int m) {
	for (int i = 0; i < m; i++) {
		printf("%d ",data[i]);
	}
	return 0;
}

void InsertSort(int* data, int m) {
	int i = 0, j = 0;
	int temp;
	for (i = 1; i < m; i++) {
		if (data[i - 1] > data[i]) {
			temp = data[i];//
			for (j = i - 1; temp < data[j]; j--) {
				data[j + 1] = data[j];
			}
			data[j + 1] = temp;
		}
	}
}
2023/9/7 12:51
加载中...