Realization idea :
1. Compare forward from the second data in the array , At the beginning, compare the second number with the one in front of him , If Qualified ( Larger or smaller than the front , custom ), Let them swap places .
2. Then compare the third number with the second one , If it meets the requirement, it will be exchanged , But here we have to move on , For example, there are 5 number 8,15,20,45,
17,17 than 45 Small , It needs to be exchanged , however 17 It's better than that 20 Small , Exchange, too , When not needed To be with 15 After the exchange , There's no need to talk to them 15 The previous data are compared , There's definitely no need for an exchange , Because before
The data of each face is ordered .
3. Repeat step two , All the way to the end of the data .
void insertSort(int a[], int nlen) { for (int i = 1; i < nlen;i++) { int n = a[
i]; for (int j = i-1; j >= 0;j--) { if (a[j]> n) { a[j + 1] = a[j]; a[j] = n; }
} } } int main() { cout << " Original array 1:\n"; int a[] = { 1, 3, 5, 7, 11,9, 2, 4, 6, 8,
10 }; for (auto node :a) { cout << node << " "; } cout << "\n After sorting :\n"; insertSort
(a, sizeof(a)/sizeof(a[0])); for (auto node :a) { cout << node << " "; } cout <<
endl; cout << "*************** luxuriant Ty Dividing line ***************\n"; int b[] = { 2, 8, 1,
7, 11, 99, 22, 3 }; cout << " Original array 2:\n"; for (auto node : b) { cout << node << "
"; } cout << "\n After sorting :\n"; insertSort(b, sizeof(b) / sizeof(b[0])); for (auto node
: b) { cout << node << " "; } cout << endl; system("pause"); return 0; }
result :
Technology