使用for循环,写的
#include <iostream>
using namespace std;
const int arrayNum=10;
int myNums[arrayNum]={3,24,4,1,4,5,667,3,3,9};
void insertSort(int *nums){
for (int i = 1; i < arrayNum; ++i)
{
int tempNum=nums[i];
int pre=i-1;
for (; pre >=0; --pre)
{
if (nums[pre]>tempNum)
{
/* code */
nums[pre+1]=nums[pre];
}
else{
// nums[j+1]=tempNum;
break;
}
/* code */
}
nums[pre+1]=tempNum;
/* code */
}
}
int main()
{
// cout << "Hello sfaworld!" << endl;
insertSort(myNums);
for (int i = 0; i < arrayNum; ++i)
{
cout<<"["<<myNums[i]<<"]<";
/* code */
}
return 0;
}
还有一个使用while写的两个差不多,插入排序是最简单的最直接最直观的排序,应该记住。
#include <iostream>
using namespace std;
const int arrayNum=10;
int myNums[arrayNum]={13,14,4,1,4,5,667,3,3,9};
void insertSort(int *nums){
for (int i = 1; i < arrayNum; ++i)
{
int tempNum=nums[i];
int pre=i-1;
while(pre>=0 && nums[pre]>tempNum){
nums[pre+1]=nums[pre];
--pre;
}
nums[pre+1]=tempNum;
}
}
int main()
{
// cout << "Hello sfaworld!" << endl;
insertSort(myNums);
for (int i = 0; i < arrayNum; ++i)
{
cout<<"["<<myNums[i]<<"]";
/* code */
}
return 0;
}
两个是一样的原理,就是先把要排序的数字保存起来。和前面已经拍好的顺序进行对比,直到遇到比他小的值就停止排序。
如果是按递减排序只需要条件变为小于号就行了。