排序算法-C++实现
生活随笔
收集整理的這篇文章主要介紹了
排序算法-C++实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#include <iostream>using namespace std;void show(int M[], int n)
{for(int i=0; i<n; i++)cout<<M[i]<<" ";cout<<endl;
}//快速排序
void quick_sort(int M[], int left, int right)
{if(left < right){int i,j,x;i = left;j = right;x = M[i];while(i<j){while(i<j && M[j]>= x)j--;if(i<j)M[i++] = M[j];while(i<j && M[i]<= x)i++;if(i<j)M[j--] = M[i];}M[i] = x;quick_sort(M, left, i-1);quick_sort(M, i+1, right);}}//插入排序
void insert_sort(int M[], int n)
{int i,j,tmp;for(i=0; i<n; i++){tmp = M[i]; //取一個新的數(shù)據(jù)tmpfor(j=i; j>0 && M[j-1]>tmp; j--)//將比數(shù)據(jù)tmp大的數(shù)據(jù)往后移動,直到找到比它的數(shù)據(jù)M[j] = M[j-1]; // j指向的始終是一個空位置M[j] = tmp;//將tmp放置在臨界位置上}
}//冒泡排序
void bubble_sort(int M[], int n)
{int i,j,k;for(i=0; i<n; i++) //每次冒泡后 數(shù)組最末端數(shù)據(jù)已經(jīng)是最大數(shù)據(jù),下次不需要重復(fù)排序for(j=0; j<n-i-1; j++){if(M[j]>M[j+1]){k = M[j+1];M[j+1] = M[j];M[j] = k;}}
}int main()
{// 輸入數(shù)據(jù)格式: 第一行 n 表示n個數(shù)據(jù)
// 接下里 輸入 n個數(shù)據(jù),舉例如下:
// 5
// 1 3 5 2 4freopen ("input.txt", "r", stdin); //可以從文件中讀取數(shù)據(jù)輸入,//如果手動輸入,注釋該行int n;cin>>n;int M[n];for(int i =0; i<n; i++)cin>>M[i];show(M, n);quick_sort(M, 0, n-1);
// insert_sort(M, n);
// bubble_sort(M, n);show(M, n);return 0;
}
轉(zhuǎn)載于:https://www.cnblogs.com/yeran/p/10959797.html
總結(jié)
以上是生活随笔為你收集整理的排序算法-C++实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DoIP协议:通用DoIP首部否定确认码
- 下一篇: 【排序(C++实现)】:二分归并排序