简单排序算法

    xiaoxiao2021-12-14  18

    简单排序算法

    <1>冒泡算法: #include <iostream> #define N 5 using namespace std; void fun(int a[],int m); int main(void) { int i; int a[N] = {85,56,32,58,12}; fun(a,N); for (i = 0;i < N;i++) cout << a[i] << ' '; return 0; } void fun(int a[],int m) { int i,j,temp; for (i = 0;i < m-1;i++) for (j = i+1;j < m;j++) if (a[i] > a[j]) //升序排序 { temp = a[i]; a[i] = a[j]; a[j] = temp; } } /* *冒泡算法多用于没有排序的数列,对其进行有序排列 */<2>插入算法: #include <iostream> #define N 10 using namespace std; void fun(int a[],int m); int main(void) { int i; int a[N] = {1,2,3,5,6,7,8,9,10}; fun(a,N); for (i = 0;i < N;i++) cout << a[i] << ' '; return 0; } void fun(int a[],int m) { int i,j,n; n = 4; //要插入的数 for (i = 0;i < m;i++) if (a[i] > n) break; for (j = m-2;j >= i;j--) // 插入适当的位置,使得数列仍按升序排列 a[j+1] = a[j]; a[i] = n; } /* *插入算法多用于已经按升序或降序排列的有序数列,插入一个数后仍按升序或降序排列 */<3>简单选择排序法: #include <iostream> #define N 10 using namespace std; void fun (int a[],int m); int main (void) { int i; int num[N] = {7,9,2,5,0,3,1,4,6,8}; fun(num,N); for (i = 0;i < N;i++) cout << num[i] << ' '; cout << endl; return 0; } void fun(int a[],int m) { int i,j,temp; int flag; flag = temp = 0; for (i = 0;i < m-1;i++) { temp = a[i]; flag = i; for (j = i+1;j < m;j++) if (a[j] < temp) {temp = a[j];flag = j;} if (flag == i) continue; a[flag] = a[i]; a[i] = temp; } } /*选择排序法同样多应用于没有排序的序列,对其进行有序排列,但较之冒泡排序,程序执行效率更高*/
    转载请注明原文地址: https://ju.6miu.com/read-971122.html

    最新回复(0)