#include<iostream>
using namespace std;
void insertsort(int arr[],int length) {
int a = sizeof(arr)/ sizeof(arr[0]);
for (int i = 1; i < length; i++) {
if (arr[i] < arr[i - 1]) {//注意[0,i-1]都是有序的。如果待插入元素比arr[i-1]还大则无需再与[i-1]前面的元素进行比较了,反之则进入if语句
int temp = arr[i]; //把第i位取出
int j; //0
for (j = i - 1; j >= 0 && arr[j] > temp; j--) {
arr[j + 1] = arr[j];//把前有序部份比temp大或相等的元素全部往后移动一个位置
}
arr[j + 1] = temp;//把待排序的元素temp插入腾出位置的(j+1)
}
}
}
void main() {
int array[] = { 10,5,8,7,6,5,4,3,1,2};
cout << ("排序之前:") << endl;
for (int element : array) {
cout << element;
}
cout <<endl;
insertsort(array, sizeof(array) / sizeof(array[0]));
cout << ("\n排序之后:")<<endl;
for (int element : array) {
cout<<element;
}
cout << endl;
system("pause");
}
using namespace std;
void insertsort(int arr[],int length) {
int a = sizeof(arr)/ sizeof(arr[0]);
for (int i = 1; i < length; i++) {
if (arr[i] < arr[i - 1]) {//注意[0,i-1]都是有序的。如果待插入元素比arr[i-1]还大则无需再与[i-1]前面的元素进行比较了,反之则进入if语句
int temp = arr[i]; //把第i位取出
int j; //0
for (j = i - 1; j >= 0 && arr[j] > temp; j--) {
arr[j + 1] = arr[j];//把前有序部份比temp大或相等的元素全部往后移动一个位置
}
arr[j + 1] = temp;//把待排序的元素temp插入腾出位置的(j+1)
}
}
}
void main() {
int array[] = { 10,5,8,7,6,5,4,3,1,2};
cout << ("排序之前:") << endl;
for (int element : array) {
cout << element;
}
cout <<endl;
insertsort(array, sizeof(array) / sizeof(array[0]));
cout << ("\n排序之后:")<<endl;
for (int element : array) {
cout<<element;
}
cout << endl;
system("pause");
}