鱼C论坛

 找回密码
 立即注册
楼主: wei_Y

[技术交流] 排序技术哪家强,各种排序算法。

  [复制链接]
发表于 2014-12-9 11:12:26 | 显示全部楼层
很不错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-9 12:10:34 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-9 12:36:55 | 显示全部楼层
太强了。特别是图。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-9 13:47:06 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-9 14:47:39 | 显示全部楼层
不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-9 17:49:13 | 显示全部楼层
看看!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-9 20:30:01 | 显示全部楼层
6666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-9 22:46:40 | 显示全部楼层
厉害厉害~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-10 02:29:13 | 显示全部楼层
gif图片很形象呀,代码不明学历:sweat:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-10 09:53:53 | 显示全部楼层
太厉害了!学习下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-10 10:38:48 | 显示全部楼层
好强大的样子,我只是来看看,虽然某些我还看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-10 11:22:12 | 显示全部楼层
这个不错,代码都有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-10 16:35:32 | 显示全部楼层
6666666666666666666666666:big
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-11 20:37:58 | 显示全部楼层
呃终于写完了 我写的c++的 才发现是Python板块的 不好意思哇
//-----------------冒泡排序--------------------
void bubblesort()
{        
        int i, j,flag,temp;
        for (i = 0; i <= 1999; i++)
        {        
                flag = 0;
                for (j = 0; j <= 1999 - i; j++)
                {        
                        if (b[j] > b[j + 1])
                        {
                                temp = b[j];
                                b[j] = b[j + 1];
                                b[j + 1] = temp;
                                flag = 1;
                        }
                }
                if (!flag) break;
        }
}

//-----------------快速排序1--------------------

void quicksort1(int left,int right)
{
        int i, j, t, temp;
        if (left > right)
                return;
        i = left; 
        j = right;
        temp = a[left];
        
        while (i!=j)
        {
                while (i < j&&a[j] >= temp)
                        --j;
                while (i < j&&a[i] <= temp)
                        ++i;
                if (i<j)
                        t = a[j]; a[j] = a[i]; a[i] = t;
                
        }
        a[left] = a[i];
        a[i] = temp;

        quicksort1(left,i-1);
        quicksort1(i+1,right);

}
//-----------------快速排序2--------------------

int part(int left, int right)
{
        int temp = a[left];
        int pivot = a[left];
        while (left < right)
        {
                while (left < right&&a[right] >= pivot) right--;
                a[left] = a[right];

                while (right > left&&a[left] <= pivot) left++;
                a[right] = a[left];
        }

        a[left] = temp;
        return left;

}
void quicksort(int left, int right)
{
        if (left < right)
        {
                int flag = part(left, right);
                quicksort(left, flag - 1);
                quicksort(flag+1,right);
        }

}


//-----------------直接插入排序--------------------
void insertsort()
{
        int i, j, temp;

        for (i = 1; i < 2000; i++)//a[0]作监视哨
        {
                temp = a[i]; 
                j = i - 1;
                
                while (a[j]>temp && j >= 0)
                {
                        a[j + 1] = a[j];//后移
                        --j;
                }

                a[j + 1] = temp;
        }
}

//-----------------希尔排序--------------------
void shellsort()
{        
        int i, j,temp,k;
        int d;//间隔
        
        for (d = 2000 / 2; d > 0;d/=2)
        {
                //直接插入排序
                for (k = 0; k < d; ++k)
                {
                        for (i = k+d; i < 2000; i += d)
                        {
                                temp = a[i];
                                j = i - d;

                                while (a[j]>temp && j >= k)
                                {
                                        a[j + d] = a[j];
                                        j -= d;
                                }
                                a[j + d] = temp;
                        }
                }

        }
}
//-----------------堆排序--------------------
void swap(int& x, int& y)
{
        int temp = x;
        x = y;
        y = temp;
}

void HeapAdjust(int i,int n)
{
        int j, temp;
        temp = a[i];
        j = 2 * i + 1;

        while (j<n)
        {
                if (j+1<n && a[j] < a[j + 1])
                {
                        j++;
                }
                
                if (temp>=a[j])        break;                        
                
                a[i] = a[j];
                i = j;
                j = 2 * i + 1;
        }

        a[i]=temp;
}

void Heapsort()
{
        int i;

        for (i = 2000/ 2-1; i >= 0; i--)
        {
                HeapAdjust(i,2000);
        }

        for (i = 1999; i > 0; i--)
        {
                swap(a[0],a[i]);
                HeapAdjust(0,i-1);
        }
}

//-----------------归并排序--------------------
void merge(int*left,int left_length,int *right,int right_length)
{
        int i, j, k,m;
        i = j = k = 0;

        while (i<left_length && j<right_length)
        {
                if (left[i] < right[j])
                        temp[k++] = left[i++];
                else
                        temp[k++] = right[j++];
        }

        while (i < left_length)
                temp[k++] = left[i++];
        while (j < right_length)
                temp[k++] = right[j++];

        for ( m = 0; m < (left_length+right_length); m++)
                left[m] = temp[m];
}
void mergesort(int* x, int n)
{
        if (n >= 2)
        {
                int *left = x;
                int left_length = n / 2;

                int *right = x + left_length;
                int right_length = n - left_length;

                mergesort(left, left_length);
                mergesort(right, right_length);

                merge(left, left_length, right, right_length);
        }
}


评分

参与人数 1荣誉 +6 鱼币 +6 贡献 +2 收起 理由
wei_Y + 6 + 6 + 2 虽然我看不懂- -,不过好厉害都写出来了!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-11 22:14:14 | 显示全部楼层
小海儿~ 发表于 2014-12-11 20:37
呃终于写完了 我写的c++的 才发现是Python板块的 不好意思哇

谢谢:big 感觉你也很厉害啊 python我还没开始学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-15 23:13:43 | 显示全部楼层
Nice
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-31 09:32:35 | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-3 14:16:02 | 显示全部楼层
果断收藏了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-3 16:41:10 | 显示全部楼层
:funk:厉害了~~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-5 20:24:35 | 显示全部楼层
太帅了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 05:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表