久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1884|回復: 7
收起左側

C語言數組由大到小排序

[復制鏈接]
ID:978416 發表于 2023-7-13 08:06 | 顯示全部樓層 |閱讀模式
for(k = 0; k < 9; k++)                                                                                                                                                
                {                                                                                                                                                                                                                                                                                
                                                        
                        
                                if( MAXTemp[k] >  MAXTemp[k+1])
                                {               
                                        Valuetemp                        = MAXTemp[k];
                                        MAXTemp[k]                = MAXTemp[k+1];
                                        MAXTemp[k+1]        = Valuetemp;
                                }
                }




問一下各位我想把數組由大到小排序,但是這樣好像只能換相鄰的位置,需要怎么修改一下啊

回復

使用道具 舉報

ID:415064 發表于 2023-7-13 09:46 | 顯示全部樓層
if( MAXTemp[k] <  MAXTemp[k+1])
回復

使用道具 舉報

ID:384109 發表于 2023-7-13 09:49 | 顯示全部樓層
查找一些排序算法吧,排序是不可能只排一次就能排序好的
回復

使用道具 舉報

ID:69038 發表于 2023-7-13 10:00 | 顯示全部樓層
冒泡算法了解一下。
回復

使用道具 舉報

ID:155507 發表于 2023-7-13 10:31 | 顯示全部樓層
通用的排序算法

  1. /* The Shaker Sort. */
  2. void shaker(char *items, int count)
  3. {
  4.         register int a;
  5.         int exchange;
  6.         char t;
  7.         do {
  8.                 exchange = 0;
  9.                 for(a=count-1; a > 0; --a) {
  10.                         if(items[a-1] > items[a]) {
  11.                                 t = items[a-1];
  12.                                 items[a-1] = items[a];
  13.                                 items[a] = t;
  14.                                 exchange = 1;
  15.                         }
  16.                 }
  17.                 for(a=1; a < count; ++a) {
  18.                         if(items[a-l] > items[a]) {
  19.                                 t = items[a-l];
  20.                                 items[a-1] = items[a];
  21.                                 items[a] = t;
  22.                                 exchange = 1;
  23.                         }
  24.                 }
  25.         } while(exchange); /* sort until no exchanges take place */
  26. }

  27. /* The Selection Sort. */
  28. void select(char *items, int count)
  29. {
  30.         register int a, b, c;
  31.         int exchange;
  32.         char t;
  33.         for(a=0; a < count-1; ++a) {
  34.                 exchange = 0;
  35.                 c = a;
  36.                 t = items[a];
  37.                 for(b=a+1; b < count; ++b) {
  38.                         if(items[b] < t) {
  39.                                 c = b;
  40.                                 t = items[b];
  41.                                 exchange = 1;
  42.                         }
  43.                 }
  44.                 if(exchange) {
  45.                         items[c] = items[a];
  46.                         items[a] = t;
  47.                 }
  48.         }
  49. }

  50. /* The Insertion Sort. */
  51. void insert (char *items, int count)
  52. {
  53.         register int a, b;
  54.         char t;
  55.         for(a=1; a < count; ++a) {
  56.                 t = items[a];
  57.                 for(b=a-1; (b >= 0) && (t < items[b]); b--)
  58.                 items[b+1] = items[b];
  59.                 items[b+1] = t;
  60.         }
  61. }


  62. /* The Shell Sort. */
  63. void shell(char *items, int count)
  64. {
  65.         register int i, j, gap, k;
  66.         char x, a[5];
  67.         a[0]=9; a[1]=5; a[2]=3; a[3]=2; a[4]=1;
  68.         for(k=0; k < 5; k++) {
  69.                 gap = a[k];
  70.                 for(i=gap; i < count; ++i) {
  71.                         x = items[i];
  72.                         for(j=i-gap; (x < items[j]) && (j >= 0); j=j-gap)
  73.                         items[j+gap] = items[j];       
  74.                         items[j+gap] = x;
  75.                 }
  76.         }
  77. }       

  78. /* Quicksort setup function. */
  79. void quick(char *items, int count)
  80. {
  81.         qs(items, 0, count-1);
  82. }
  83. /* The Quicksort. */
  84. void qs(char *items, int left, int right)
  85. {
  86.         register int i, j;
  87.         char x, y;
  88.         i = left; j = right;
  89.         x = items[(left+right)/2];
  90.         do {
  91.                 while((items[i] < x) && (i < right)) i++;
  92.                 while((x < items[j]) && (j > left)) j--;
  93.                 if(i <= j) {
  94.                         y = items[i];
  95.                         items[i] = items[j];
  96.                         items[j] = y;
  97.                         i++; j--;
  98.                 }
  99.         } while(i <= j);
  100.         if(left < j) qs(items, left, j);
  101.         if(i < right) qs(items, i, right);
  102. }
復制代碼
回復

使用道具 舉報

ID:584814 發表于 2023-7-13 15:08 | 顯示全部樓層
冒泡法:第1個數和所有的比一遍,遇大的則交換在第1的位置;然后第2......
按從小到大排也是一樣的方法。程序也就是兩層 for 就夠了。
回復

使用道具 舉報

ID:908826 發表于 2023-7-13 15:58 | 顯示全部樓層
看了一下你的思路,你可以看看冒泡排序
回復

使用道具 舉報

ID:189206 發表于 2023-7-13 16:45 | 顯示全部樓層
排序方法有很多,看你選擇什么方法,冒泡,快速~~~等等
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品a久久久久 | 欧美日韩在线综合 | 一区二区三区精品在线 | 91精品导航 | 亚洲欧美日韩精品 | 国产精品成人品 | 欧美久久久久久久 | 国产精品久久久久久亚洲调教 | 成人av鲁丝片一区二区小说 | 欧美日韩一区二区三区四区 | 成人免费看片 | 精品中文在线 | 国产精品久久午夜夜伦鲁鲁 | 狠狠色综合久久婷婷 | 伦理片97 | 亚洲福利在线视频 | 欧美日韩成人 | 一区二区在线不卡 | 亚洲永久入口 | 黄网站在线播放 | 亚洲成av人片在线观看 | 成人午夜电影在线观看 | 国产99久久精品 | 色综合视频 | 国产一区二区黑人欧美xxxx | 日本福利在线观看 | 久久九 | 亚洲手机视频在线 | 91极品视频 | 国产成人午夜高潮毛片 | av网站免费 | 欧美视频三区 | 国产一区2区 | 中文天堂网 | av在线免费不卡 | 亚洲精品欧美 | 91成人在线 | 91精品一区二区三区久久久久 | 九九视频在线观看视频6 | 欧美aaaaaa| 中文字幕一级毛片视频 |