鱼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板块的 不好意思哇
  1. //-----------------冒泡排序--------------------
  2. void bubblesort()
  3. {       
  4.         int i, j,flag,temp;
  5.         for (i = 0; i <= 1999; i++)
  6.         {       
  7.                 flag = 0;
  8.                 for (j = 0; j <= 1999 - i; j++)
  9.                 {       
  10.                         if (b[j] > b[j + 1])
  11.                         {
  12.                                 temp = b[j];
  13.                                 b[j] = b[j + 1];
  14.                                 b[j + 1] = temp;
  15.                                 flag = 1;
  16.                         }
  17.                 }
  18.                 if (!flag) break;
  19.         }
  20. }

  21. //-----------------快速排序1--------------------

  22. void quicksort1(int left,int right)
  23. {
  24.         int i, j, t, temp;
  25.         if (left > right)
  26.                 return;
  27.         i = left;
  28.         j = right;
  29.         temp = a[left];
  30.        
  31.         while (i!=j)
  32.         {
  33.                 while (i < j&&a[j] >= temp)
  34.                         --j;
  35.                 while (i < j&&a[i] <= temp)
  36.                         ++i;
  37.                 if (i<j)
  38.                         t = a[j]; a[j] = a[i]; a[i] = t;
  39.                
  40.         }
  41.         a[left] = a[i];
  42.         a[i] = temp;

  43.         quicksort1(left,i-1);
  44.         quicksort1(i+1,right);

  45. }
  46. //-----------------快速排序2--------------------

  47. int part(int left, int right)
  48. {
  49.         int temp = a[left];
  50.         int pivot = a[left];
  51.         while (left < right)
  52.         {
  53.                 while (left < right&&a[right] >= pivot) right--;
  54.                 a[left] = a[right];

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

  58.         a[left] = temp;
  59.         return left;

  60. }
  61. void quicksort(int left, int right)
  62. {
  63.         if (left < right)
  64.         {
  65.                 int flag = part(left, right);
  66.                 quicksort(left, flag - 1);
  67.                 quicksort(flag+1,right);
  68.         }

  69. }


  70. //-----------------直接插入排序--------------------
  71. void insertsort()
  72. {
  73.         int i, j, temp;

  74.         for (i = 1; i < 2000; i++)//a[0]作监视哨
  75.         {
  76.                 temp = a[i];
  77.                 j = i - 1;
  78.                
  79.                 while (a[j]>temp && j >= 0)
  80.                 {
  81.                         a[j + 1] = a[j];//后移
  82.                         --j;
  83.                 }

  84.                 a[j + 1] = temp;
  85.         }
  86. }

  87. //-----------------希尔排序--------------------
  88. void shellsort()
  89. {       
  90.         int i, j,temp,k;
  91.         int d;//间隔
  92.        
  93.         for (d = 2000 / 2; d > 0;d/=2)
  94.         {
  95.                 //直接插入排序
  96.                 for (k = 0; k < d; ++k)
  97.                 {
  98.                         for (i = k+d; i < 2000; i += d)
  99.                         {
  100.                                 temp = a[i];
  101.                                 j = i - d;

  102.                                 while (a[j]>temp && j >= k)
  103.                                 {
  104.                                         a[j + d] = a[j];
  105.                                         j -= d;
  106.                                 }
  107.                                 a[j + d] = temp;
  108.                         }
  109.                 }

  110.         }
  111. }
  112. //-----------------堆排序--------------------
  113. void swap(int& x, int& y)
  114. {
  115.         int temp = x;
  116.         x = y;
  117.         y = temp;
  118. }

  119. void HeapAdjust(int i,int n)
  120. {
  121.         int j, temp;
  122.         temp = a[i];
  123.         j = 2 * i + 1;

  124.         while (j<n)
  125.         {
  126.                 if (j+1<n && a[j] < a[j + 1])
  127.                 {
  128.                         j++;
  129.                 }
  130.                
  131.                 if (temp>=a[j])        break;                       
  132.                
  133.                 a[i] = a[j];
  134.                 i = j;
  135.                 j = 2 * i + 1;
  136.         }

  137.         a[i]=temp;
  138. }

  139. void Heapsort()
  140. {
  141.         int i;

  142.         for (i = 2000/ 2-1; i >= 0; i--)
  143.         {
  144.                 HeapAdjust(i,2000);
  145.         }

  146.         for (i = 1999; i > 0; i--)
  147.         {
  148.                 swap(a[0],a[i]);
  149.                 HeapAdjust(0,i-1);
  150.         }
  151. }

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

  157.         while (i<left_length && j<right_length)
  158.         {
  159.                 if (left[i] < right[j])
  160.                         temp[k++] = left[i++];
  161.                 else
  162.                         temp[k++] = right[j++];
  163.         }

  164.         while (i < left_length)
  165.                 temp[k++] = left[i++];
  166.         while (j < right_length)
  167.                 temp[k++] = right[j++];

  168.         for ( m = 0; m < (left_length+right_length); m++)
  169.                 left[m] = temp[m];
  170. }
  171. void mergesort(int* x, int n)
  172. {
  173.         if (n >= 2)
  174.         {
  175.                 int *left = x;
  176.                 int left_length = n / 2;

  177.                 int *right = x + left_length;
  178.                 int right_length = n - left_length;

  179.                 mergesort(left, left_length);
  180.                 mergesort(right, right_length);

  181.                 merge(left, left_length, right, right_length);
  182.         }
  183. }
复制代码



评分

参与人数 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-4-18 10:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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