#include <stdio.h>
void
printf_array(int *array,int len)
{
int i=0;
for(i =0;i<len;i++)
{
printf("%d ",*(array+i) );
//printf("%d ",array[i] );
}
printf("\n");
}
void swap_array(int *array,int i,int k)
{
int temp = *(array+i);
*(array+i) = *(array+k);
*(array+k) = temp;
}
void InsertSort(int *array,int len)//O(n*n)
{
int i=0,j=0;
int k = -1;
int temp=-1;
for(i=1;i<len;i++)
{
k=i;//这一步很关键,是记录原来的比较元素
temp = *(array+k);
for(j=i-1;(j>=0)&&(*(array+j) > temp);j--)
{
*(array+j+1) = *(array+j);
k = j;
}
*(array+k) =temp;
}
}
void SelectSort(int *array,int len)//O(n*n)
{
int i=0,j=0;
int k = -1;
for(i=0;i<len;i++)
{
k=i;
for(j=i;j<len;j++)
{
if( *(array+j) < *(array+k) )
k = j;
}
swap_array(array,i,k);//找出最小的然后和有序的最后的替换
}
}
int main(void )
{
int array[]={21,25,49,25,16,8};
int len = sizeof(array) / sizeof(*array);
//SelectSort(&array[0],len);
printf("%d\n",len);
InsertSort(array,len);
printf_array(&array[0],len);
while(1);
return 0;
}
<script type="text/javascript" id="wumiiRelatedItems"> </script>
转发至微博
转发至微博