1. 程式人生 > >最簡單的排序算法(C和C++實現)

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

最簡單的排序算法(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++實現)