欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++按照正態(tài)分布來排列整型數組元素

 更新時間:2016年07月31日 17:13:38   投稿:hebedich  
這篇文章主要介紹了C++按照正態(tài)分布來排列整型數組元素的相關資料,需要的朋友可以參考下

題目要求如下:

給定一個數組input[],

如果數組長度n為奇數,則將數組中最大的元素放到output[]數組最中間的位置,

如果數組長度n為偶數,則將數組中最大的元素放到 output[] 數組中間兩個位置偏右的那個位置上,

然后再按從大到小的順序,依次在第一個位置的兩邊,按照一左一右的順序,依次存放剩下的數。

這種處理后結果,如果按照元素的值表示一種分布的圖形的話,那繪制后的圖形應該是正態(tài)分布。

關于正態(tài)分布:

正態(tài)分布(Normal distribution)又名高斯分布(Gaussian distribution),是一個在數學、物理及工程等領域都非常重要的概率分布,在統(tǒng)計學的許多方面有著重大的影響力。若隨機變量X服從一個數學期望為μ、方差為σ^2的高斯分布,記為N(μ,σ^2)。其概率密度函數為正態(tài)分布的期望值μ決定了其位置,其標準差σ決定了分布的幅度。因其曲線呈鐘形,因此人們又經常稱之為鐘形曲線。我們通常所說的標準正態(tài)分布是μ= 0,σ = 1的正態(tài)分布。

這里只是從結果上產生聯(lián)系,算法與正態(tài)分布無關。

代碼實現如下:

void sort(int input[],int output[], int n) 
{ 
  int m=n; 
  //cout<<m<<endl; 
   
  int i,j,temp; 
  bool exchange;//交換標志 
  for(i=0;i<m-1;i++) 
  { //最多做n-1趟排序 
    exchange=FALSE; //本趟排序開始前,交換標志應為假 
    for(j=m-2;j>=i;j--) //對當前無序區(qū)R[i..n]自下向上掃描 
      if(input[j+1]<input[j]) 
      {//交換記錄 
        temp=input[j+1]; //R[0]不是哨兵,僅做暫存單元 
        input[j+1]=input[j]; 
        input[j]=temp; 
        exchange=TRUE; //發(fā)生了交換,故將交換標志置為真 
      } 
      if(!exchange) //本趟排序未發(fā)生交換,提前終止算法 
        break; 
      //cout<<input[5]<<endl; 
  }  
   
  for(int wc1=0; wc1<m; wc1++)//只是來顯示排序結果~ 
  { 
    cout<<input[wc1]<<" "; 
  } 
  cout << endl; 
   
  int q=m-1; 
  if((m%2)==0) 
  { 
    int mid=m/2; 
    for (int tempmid=0; tempmid<=mid; tempmid++)//注意循環(huán)語句的執(zhí)行順序 
    { 
      output[mid+tempmid]=input[q]; 
      q--; 
      output[mid-tempmid-1]=input[q]; 
      q--; 
    } 
  } 
   
  if((m%2)!=0)//注意循環(huán)語句的執(zhí)行順序 
  { 
    int mid=q/2; 
    output[mid]=input[q]; 
    for (int tempmid=1;tempmid<=mid;tempmid++) 
    { 
      q--; 
      output[mid-tempmid]=input[q]; 
      q--; 
      output[mid+tempmid]=input[q]; 
    } 
  } 
   
  for(int wc=0; wc<m; wc++) 
  { 
    cout<<output[wc]<<" "; 
  } 
  cout << endl; 
} 

int main() 
{ 
   int input[] = {3, 6, 1, 9, 7, 8, 2}; 
   int wc=0; 
   int nCount = sizeof(input)/sizeof(int); 
   for(wc=0; wc<nCount; wc++)// 
  { 
    cout<<input[wc] << " "; 
    //cout<<"\n"<<endl; 
  } 
  cout << endl; 
 
  int output[]= {3, 6, 1, 9, 7, 8, 2}; 
  sort(input,output, nCount); 
   
  return 0; 
} 

測試結果:

當int input[] = {3, 6, 1, 9,7, 8, 2, 10};,結果如下:

3 6 1 9 7 8 2 10

1 2 3 6 7 8 9 10

1 3 7 9 10 8 6 2

當int input[] = {3, 6, 1, 9,7, 8, 2, 10};,結果如下:

3 6 1 9 7 8 2

1 2 3 6 7 8 9

2 6 8 9 7 3

相關文章

  • 關于VS+QT5應用程序換圖標的解決方案

    關于VS+QT5應用程序換圖標的解決方案

    這篇文章主要介紹了VS+QT5應用程序換圖標的處理方案,本文給大家提供了兩種解決方案供大家參考,每種方法給大家講解的都非常詳細,需要的朋友可以參考下
    2021-12-12
  • C++ Boost Container庫示例詳細講解

    C++ Boost Container庫示例詳細講解

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • 簡單總結C++中的修飾符類型

    簡單總結C++中的修飾符類型

    這篇文章主要介紹了C++中的修飾符類型總結,是C++入門學習中的基礎知識,需要的朋友可以參考下
    2016-05-05
  • C語言實現漢諾塔(圖文詳解)

    C語言實現漢諾塔(圖文詳解)

    個人覺得漢諾塔這個遞歸算法比電子老鼠的難了一些,不過一旦理解了也還是可以的,其實網上也有很多代碼,可以直接參考。記得大一開始時就做過漢諾塔的習題,但是那時代碼寫得很長很長,也是不理解遞歸的結果。今天重新來實現一下
    2021-08-08
  • 詳解桶排序算法的思路及C++編程中的代碼實現

    詳解桶排序算法的思路及C++編程中的代碼實現

    桶排序即是先把每個桶中的元素進行排序然后遍歷桶依次列出元素的算法,桶排序在元素較少的情況下很高效,以下我們就來詳解桶排序算法的思路及C++編程中的代碼實現:
    2016-07-07
  • C語言實現簡易通訊錄實例

    C語言實現簡易通訊錄實例

    大家好,本篇文章主要講的是C語言實現簡易通訊錄實例,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • C++命名空間和缺省參數介紹

    C++命名空間和缺省參數介紹

    這篇文章主要介紹了C++命名空間和缺省參數,使用命名空間的目的是對標識符的名稱進行本地化,以避免命名沖突或名字污染,namespace關鍵字的出現就是針對這種問題的,缺省參數是聲明或定義函數時為函數的參數指定一個默認值,更多詳細內容需要的小伙伴可以參考下面文章內容
    2022-01-01
  • C語言實現簡易學生管理系統(tǒng)

    C語言實現簡易學生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現簡易學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++實現LeetCode(20.驗證括號)

    C++實現LeetCode(20.驗證括號)

    這篇文章主要介紹了C++實現LeetCode(20.驗證括號),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • C++using聲明和using編譯指令

    C++using聲明和using編譯指令

    這篇文章主要介紹了C++using聲明和using編譯指令,C++當中提供了兩種機制來簡化對名稱空間中名稱的使用。using聲明使特定的標識符keys,using編譯指令使整個名稱空間可用。下面我們就來看看這兩種機制的相關資料吧,需要的小伙伴可以參考一下
    2021-12-12

最新評論