typedef struct Node {
int val;
struct *Node;
}Node, LinkedList;
int main() {
}
void cal(Node *L, int left, int right) {
if(left < right) {
int j = (int) sqrt(right - left +1);
if(j > 1) {
for (int i = 0; i < j; i ++) sort(L, left + i * j, left + (i + 1) * j - 1);
sort(a, left + j * i, right);
}
merge();
}
}
sort();
merge();
//合有两种方式
一种是大的吞并小的
一种是头序号都放到数组里,然后都合一遍,用一个新的数组存放,除到新的数组中元素个数为1
int val;
struct *Node;
}Node, LinkedList;
int main() {
}
void cal(Node *L, int left, int right) {
if(left < right) {
int j = (int) sqrt(right - left +1);
if(j > 1) {
for (int i = 0; i < j; i ++) sort(L, left + i * j, left + (i + 1) * j - 1);
sort(a, left + j * i, right);
}
merge();
}
}
sort();
merge();
//合有两种方式
一种是大的吞并小的
一种是头序号都放到数组里,然后都合一遍,用一个新的数组存放,除到新的数组中元素个数为1