日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言煎饼问题算法,C煎饼分类程序?

發(fā)布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言煎饼问题算法,C煎饼分类程序? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

此C程序在整數(shù)數(shù)組上實現(xiàn)Pancake Sort。

煎餅分類是分類問題的一種變體,其中唯一允許的操作是反轉(zhuǎn)序列中某些前綴的元素。

煎餅分類是一個數(shù)學(xué)問題的通俗術(shù)語,即按照煎餅的大小順序?qū)σ欢褵o序的煎餅進(jìn)行分類,這時可以在煎餅堆中的任何一點插入一個鍋鏟,然后用它把所有的煎餅翻過來。煎餅數(shù)是給定數(shù)量的煎餅所需的最小翻轉(zhuǎn)次數(shù)Input:5,3,2,1,4

Output:1?2?3?4?5

說明

它是排序問題的一種變體,在排序問題中,唯一允許的操作是反轉(zhuǎn)序列中某些前綴的元素。與傳統(tǒng)的排序算法不同,傳統(tǒng)排序算法試圖用盡可能少的比較進(jìn)行排序,其目標(biāo)是盡可能少地對序列進(jìn)行反向排序。這個問題的另一個變體與燒焦的煎餅有關(guān),每個煎餅都有一個燒焦的一面,而且所有的煎餅都必須以燒焦的一面在底部結(jié)束。

示例#include?

using?namespace?std;

void?do_flip(int?*,?int,?int);

int?pancake_sort(int?*list,?unsigned?int?length)?{

if?(length?

return?0;

int?i,?a,?max_num_pos,?moves;

moves?=?0;

for?(i?=?length;i?>?1;i--)?{

max_num_pos?=?0;

for?(a?=?0;a?

if?(list[a]?>?list[max_num_pos])

max_num_pos?=?a;

}

if?(max_num_pos?==?i?-?1)

continue;

if?(max_num_pos){

moves++;

do_flip(list,?length,?max_num_pos?+?1);

}

do_flip(list,?length,?i);

}

return?moves;

}

void?do_flip(int?*list,?int?length,?int?num)?{

int?swap;

int?i?=?0;

for?(i=0;i?

swap?=?list[i];

list[i]?=?list[num];

list[num]?=?swap;

}

}

int?main(int?argc,?char?**argv)?{

int?arr[]={5,3,2,1,4};

int?n=5;

int?moves=pancake_sort(arr,?n);

for?(int?i?=?0;i?

printf("%d?",?arr[i]);

}

printf("?-?with?a?total?of?%d?moves\n",?moves);

}

總結(jié)

以上是生活随笔為你收集整理的c语言煎饼问题算法,C煎饼分类程序?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。