插入排序、归并排序
来源:互联网 发布:单片机仿真器 编辑:程序博客网 时间:2024/04/30 01:46
/*插入排序*/
#define LEN 5
int a[LEN] = {10, 5, 2, 4, 7};
void insertion_sort(void)
{
int i, j, k;
for(j = 1; j < LEN; j++)
{
k = a[j];
i = j - 1;
while(i >= 0 && a[i] > k)
{
a[i+1] = a[i];
--i;
}
a[i+1] = k;
}
}
///////////////////////////////////////////////
/*归并排序*/
int a[8] = {5, 2, 4, 7, 1, 3, 2, 6};
void merge(int start, int mid, int end)
{
int n1 = mid - start + 1;
int n2 = end - mid;
int left[n1], right[n2];
int i, j, k;
for(i = 0; i < n1; +i)
left[i] = a[start+i];
for(j = 0; j < n2; ++j)
right[j] = a[mid+1+j];
i = j = 0;
for(k = start; i < n1 && j < n2; ++k)
{
if(left[i] < right[j])
{
a[k] = left[i];
++i;
}
else
{
a[k] = right[j];
++j;
}
}
if (i < n1)
{
for(; i < ni; ++i)
{
a[k] = left[i];
++k;
}
}
if(j < n2)
{
for(; j < n2; ++j)
{
a[k] = right[j];
++k;
}
}
}
void sort(int start, int end)
{
int mid;
if(start < end)
{
mid = (start + end)/2;
sort(start, mid);
sort(mid+1, end);
merge(start, mid, end);
}
}
////////////////////////////////////////////
- 插入排序、归并排序
- 插入排序,归并排序
- 插入排序&归并排序
- 插入排序&&归并排序
- 插入排序与归并排序
- 归并排序和插入排序
- 插入排序及归并排序
- 插入排序和归并排序
- 插入排序和归并排序
- 插入排序和归并排序
- 插入排序与归并排序
- 插入排序和归并排序
- 插入排序和归并排序
- 插入排序和归并排序
- 插入排序与归并排序
- 插入、归并、快速排序
- 冒泡,插入,归并排序
- 归并插入排序
- 数据挖掘从业人员工作分析
- 块设备驱动注册和注销、加载与卸载、块设备驱动的I/O请求
- 深入剖析WTL框架(三)
- ACMICPC亚洲区域赛福州赛区总结~ By SCAU_AngryTeletubbies' Eisenhower
- Windows Phone 7上广告平台的选择
- 插入排序、归并排序
- 深入剖析WTL框架(四)
- AsyncTaskTest
- 深入剖析WTL框架(五)
- C#的StreamReader读文件
- Android实现widget定时更新
- 对html页面中text元素进行复制
- 深入剖析WTL框架(六)
- 数组逆序