最簡單的排序演算法(C和C++實現)

來源:互聯網
上載者:User

標籤:最簡單的排序演算法(C和C++實現)

1、演算法思想如:

把待排序的數都存在對應的數組的下標中,如果待排序的數有重複的,就用對應的數組加一,最後把數組的下標列印出來即可。

2、源碼(C)如下:

#include <stdio.h>

int main (void)

{

    int a[100], i, j, t, n;

//初始a[i]為0 

for (i = 0; i <= 100; i++)

{

   a[i] = 0;

}

   scanf ("%d", &n);

for (i = 1; i <= n; i++)

{

scanf ("%d", &t);

a[t]++; // 進行計數,即出現了多少次 

}

//i初值為100,先列印最大的下標 

for (i = 100; i >= 0; i--)

{

//如果a[i]等於1,怎麼說明該數出現一次,a[i]大於1說明出現多次 

for (j = 1; j <= a[i]; j++)

{

printf ("%d ", i);

}

getchar();

return 0;

}

3、原始碼(C++)如下:

#include <iostream>

using namespace std;

int main (void)

{

int a[101], i, j, t, n;

//初始a[i]為0 

for (i = 0; i <= 100; i++)

{

  a[i] = 0;

}

  cin >> n;

for (i = 1; i <= n; i++)

{

    cin >> t;

a[t]++; // 進行計數,即出現了多少次 

}

//i初值為100,先列印最大的下標 

for (i = 100; i >= 0; i--)

{

//如果a[i]等於1,怎麼說明該數出現一次,a[i]大於1說明出現多次 

for (j = 1; j <= a[i]; j++)

{

cout << i << endl;

}

 return 0;

}


















最簡單的排序演算法(C和C++實現)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.