首页 > 代码库 > Android项目开发五-《星星生活志》1.使用MediaRecorder录制音频

Android项目开发五-《星星生活志》1.使用MediaRecorder录制音频

转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/26059615       

       插入排序:它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

一.插入排序算法

/***************************************************************
*版权所有 (C)2014,公司名称。
*
*文件名称:插入排序法
*内容摘要:无
*其它说明:无
*当前版本:V1.0
*作   者:若云流风
*完成日期:2014.5.17
***************************************************************/
#include <stdio.h>

#define N  7

void disp(void);

int a[N]={5,0,7,1,12,11,9};

/*排序函数*/
void InsertionSort(void)  
{
	int j,p,temp;

	for(p=1;p<N;p++)
	{
		temp=a[p]; //a[p]和左面的有序数列去比较
/*j>0保证不溢出,因为当j=0时啊a[j-1]非法,用a[p]分别与左面的值相比较
**如果a[p]小的话则互换位置,
*/
		printf("\n\n排序过程:        "); 
		for(j=p; j>0 && a[j-1]>temp;j--)     
		{
			a[j]=a[j-1];
            disp();
        } 
		a[j]=temp;

		printf("\n\n新一轮排序结果:        ");		
		disp();
	}


} 

/*输出函数*/
void disp(void)
{
     int i;

//     printf("\n排序结果: \n");
	 printf("\n\n");
	 for(i=0;i<N;i++)
	 {
		printf("%d", a[i]);
		printf("  ");
	 }

	
}

int main(void)
{
	InsertionSort();
  //  disp();
	return 0;

}


二.算法会说话

1.结果输出


2.结果分析

          上图就是每一轮的排序过程和结果。对于7个数的数组,共需要6轮。现在我拿出第三轮来详细讲解这个插入排序。

       程序在第二轮已经将前三个数排好了,第三轮将a[3](也就是第四个数)与前面的数相比较。1与7比较,确实比7小所以a[3]被赋值为7,然后1继续向左走,1比5小,a[2]被赋值为5,然后1继续向左走,1比0大,循环终结。将a[1]赋值为1(也就是temp)。