这是什么算法???

燙燙燙燙燙燙燙 2020-05-29 03:43:35
代码如下
#include <stdio.h>

#define EXCHANGE(valA,valB) {valA = valA^valB; valB = valA^valB; valA = valA^valB; }
int gArray[15] = {54 ,66, 1 ,574,664,654,2174,322,5514,1974,46,345,3123,4546,211};
//int gArray[15] = {5514,4546,3123,2174,1974,664,654,574,345,322,211,66,54,46,1};
void sort(int * array,int len) {
if( len <= 1) return;
int mid = len/2;
bool change = false;
for(int idx = 0 ; idx < len; idx++) {
if((array[idx] > array[mid] && idx < mid) || (array[idx] < array[mid] && idx > mid)) {
EXCHANGE(array[idx],array[mid]);
mid = idx;
change = true;
printf("[%d]\t",array[mid]);
for(int idx =0; idx < len; idx++)
printf("%d\t",array[idx]);
printf("\n");
}
}

if(change) sort(array, len);
else {
sort(array, mid);
//sort(array+mid+1,len- mid -1);
}
return;
}
int main(int argc,char * argv[]) {
sort(gArray,15);
printf("[0000]\t");
for(int idx =0; idx < 15; idx++)
printf("%d\t",gArray[idx]);
printf("\n");
return 0;
}
...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 1 楼 Simple-Soft 的回复:
应该是快速排序
跟那个有区别,应该不是
Simple-Soft 2020-05-29
  • 打赏
  • 举报
回复
应该是快速排序

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧