排序算法
来源:互联网 发布:网络套现违法吗 编辑:程序博客网 时间:2024/06/04 19:27
(1)优化版冒泡排序
char* strSort(char *c)
{
assert(NULL != c);
char *temp = c;
int len = strlen(c)-1;
while (len--)
{
c = temp;
bool bSwap = false;
while (*(c + 1))
{
if (*c > *(c + 1))
{
bSwap = true;
*c = *c + *(c + 1);
*(c + 1) = *c - *(c + 1);
*c = *c - *(c + 1);
}
++c;
}
if (!bSwap)
{
break;
}
}
return temp;
}
归并算法:
//将有二个有序数列a[first...mid]和a[mid...last]合并。
- void mergearray(int a[], int first, int mid, int last, int temp[])
- {
- int i = first, j = mid + 1;
- int m = mid, n = last;
- int k = 0;
- while (i <= m && j <= n)
- {
- if (a[i] <= a[j])
- temp[k++] = a[i++];
- else
- temp[k++] = a[j++];
- }
- while (i <= m)
- temp[k++] = a[i++];
- while (j <= n)
- temp[k++] = a[j++];
- for (i = 0; i < k; i++)
- a[first + i] = temp[i];
- }
- void mergesort(int a[], int first, int last, int temp[])
- {
- if (first < last)
- {
- int mid = (first + last) / 2;
- mergesort(a, first, mid, temp); //左边有序
- mergesort(a, mid + 1, last, temp); //右边有序
- mergearray(a, first, mid, last, temp); //再将二个有序数列合并
- }
- }
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- ecache并发缓存文件破坏异常
- ecshop修改程序随机替换产品名称或图片为Powered by ECShop
- oracle partition
- 在线flash文档阅读器(asp.net全文索引,仿百度文库
- (转载)【linux信号】信号未决与阻塞
- 排序算法
- Java数据类型,Hibernate数据类型,标准sql数据类型的对应
- JS排序算法
- HDU2004
- android 不生成odex文件方法 .
- 递归--汉诺塔问题
- 奋斗黑马程序员----Java缓冲区简介
- Eclipse 快捷键大全 转载
- 自考 操作系统概论-计算机系统