求一个N个元素的任何排序中逆序对数量(算法时间复杂度nlogn)其实就是修改了一个归并排序的算法#include<stdlib.h>#include<stdio.h>int total = 0; //设置一个全局变量用来统计逆序对个数void divide(int list[], int tmp[], int start, int end){ int middle = (start+end)/2; &nb.........【阅读全文】
M={r1, r2, r3.......rn}对M进行全排列,并输出。M中元素可能有重复。#include<stdlib.h>void swap(int *a, int *b){ int tmp; tmp = *a; *a = *b; *b = tmp;}int total = 0;void perm(int list[], int k, int n){ int i; &nb.........【阅读全文】