97~98、 2道题 利用数组实现插入排序 & 习题
1,请编程实现数组的插入排序(从小到大),然后请用户再输入一个数,将这个数插入到排好顺序的数组中,注意数组定义时长度要够用,不要产生越界。
//请编程实现数组的插入排序(从小到大),然后请用户再输入一个数,将这个数插入到排好顺序的数组中,注意数组定义时长度要够用,不要产生越界
#include<iostream>
using namespace std;
int main() {
int a[8]{13,46,648,4,465};
int b;
int n =5;
for (int i = 1; i < n; i++) {
for (int j = i - 1; j >= 0; j--) {
if (a[j]>a[j+1]) {
b = a[j];
a[j] = a[j + 1];
a[j + 1] = b;
}
else {
break;
}
}
}
for (int i = 0; i < n ; i++) {
cout << a[i]<<'\t';
}
cout << endl;
cin >> a[n];
n++;
for (int i = n - 2; i >= 0; i--) {
if (a[i] > a[i + 1]) {
b = a[i+1];
a[i + 1] = a[i];
a[i] = b;
}
}
for (int i = 0; i < n; i++) {
cout << a[i] << '\t';
}
cout << endl;
system("pause");//卡屏函数
return 0;
}
2,请编程直接实现数组的插入排序(从大到小)
//请编程直接实现数组的插入排序(从大到小]
#include<iostream>
using namespace std;
int main() {
int a[5]{6,46,648,4,465};
int b,c ;
int n = sizeof a / sizeof a[1];
for (int i = 1; i < n; i++) {
for (int j = i - 1; j >= 0; j--) {
if (a[j]<a[j+1]) {
b = a[j];
a[j] = a[j + 1];
a[j + 1] = b;
}
else {
break;
}
}
}
for (int i = 0; i < n ; i++) {
cout << a[i]<<'\t';
}
cout << endl;
system("pause");//卡屏函数
return 0;
}