插入排序:
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法。
#include <iostream>
using namespace std;
void printLn(int array[],int len)
{
for (int i =0; i<len; i++) {
printf("%d,",array[i]);
}
printf("\n");
}
void swap(int array[],int i,int j)
{
int t = array[i];
array[i] = array[j];
array[j] = t;
}
void Sort(int array[],int len)
{
int t,i,j;
for ( i =1; i<len; i++) {
t = array[i];
j = i;
while ((j>0)&&(array[j-1]>t)) {
swap(array, j, j-1);
j--;
}
}
}
int main(int argc, const char * argv[]) {
int array[] ={21,25,49,25,26,28};
int len = sizeof(array)/sizeof(*array);
printf("选择排序交换之前\n");
printLn(array, len);
printf("\n");
Sort(array, len);
printf("选择排序之后\n");
printLn(array, len);
return 0;
}
结果
选择排序交换之前
21,25,49,25,26,28,
选择排序之后
21,25,25,26,28,49,
Program ended with exit code: 0