升序排
對(duì)數(shù)組進(jìn)行插入排序
void insert_sort(int* ar, int n)
{
int key;
for (int j = 1; j < n; j++)
{
key = ar[j]; //保存待排數(shù)據(jù)
int i;
for (i = j - 1; i >= 0; i--)
{
if (ar[i] > key) //比待排數(shù)據(jù)大,右移
ar[i + 1] = ar[i];
}
ar[i + 1] = key; //插入待排數(shù)據(jù)
}
}
對(duì)線性表進(jìn)行插入排序
void insert_sort_ll(LinkList& list)
{
if(head->next)
{
LinkList* last = head->next, *current = last->next; *in=head;
while(current)
{
for(in = head; in!=last; in = in->next)
{
if(current->data < in->next)
{
last->next = current->next;
current->next = in->last;
in->last = current;
break;
}
}
current = last->next;
}
}
}