-
江户川乱折腾
#include<stdio.h>//冒泡排序法void BubbleSort(int * pData,int Count){int iTemp;for(int i=1;i<Count;i++){ //一共进行(count-1)轮,每次得到一个最小值for(int j=Count-1;j>=i;j--)//每次从最后往前交换,得到最小值{if(pData[j]<pData[j-1]){iTemp = pData[j-1];pData[j-1] = pData[j];pData[j] = iTemp;}}}}int main(){int *data;int n,i;printf("请输入要排序的数的个数:\n");scanf("%d",&n);data=new int[n];printf("请输入%d个数:\n",n);for (i=0;i<n;i++){scanf("%d",&data[i]);}BubbleSort(data,n);printf("排序结果为:\n");for (i=0;i<n;i++){printf("%d ",data[i]);}return 0;}
-
慕勒3428872
#include<stdio.h>#define N 20int compare(float x,float y){if(x - y >1e-6)return 1;else if(y - x > 1e-6)return -1;elsereturn 0;}void swap(float x,swap y){float z;z = x;x = y ;y = z;}void sort(float a[],int n){int i,j;for(i = 0 ; i < n ; i ++)for(j = i + 1; j < n ; j ++)if(compare(a[i],a[j]) < 0)swap(a[i],a[j]);}void main(void){float array[N];int n,i;printf("请输入你的数组元素个数:(n<=N)\n");scanf("%d",&n);for(i = 0 ; i < n ; i ++)scanf("%f",&array[i]);printf("排序前数组为:\n");for(i = 0 ; i < n ; i ++)printf("%.2f ",array[i]);sort(array,n);printf("排序后数组为:\n");for(i = 0 ; i < n ; i ++)printf("%.2f ",array[i]);}
-
一只名叫tom的猫
#include <iostream>#include <cmath>using namespace std;const int NUM=5;void quicksort(double str[],int front,int rear){int lower=front+1,upper=rear;swap(str[front],str[(front+rear)/2]);double mid=str[front];while(lower<=upper){while(str[lower]<mid) lower++;while(str[upper]>mid) upper--;if(lower<upper)swap(str[lower++],str[upper--]);else lower++;//这是为了结束外层循环;}swap(str[front],str[upper]);if(upper+1<rear) quicksort(str,upper+1,rear);if(upper-1>front) quicksort(str,front,upper-1);}void qs(double str[],int n){int i,max;if(n<2) return;for(i=1,max=0;i<NUM;i++)//换最大元素到数组末尾;if(str[i]>str[max]) max=i;swap(str[NUM-1],str[max]);quicksort(str,0,NUM-2);}int main(){int i;double str[NUM];for(i=0;i<NUM;i++)scanf("%lf",&str[i]);qs(str,NUM);for(i=0;i<NUM;i++) cout<<str[i]<<' '; cout<<endl;return 0;}一般数据结构与算法教科书都有快速排序的代码:这个就是以前我不会调用STL时候自己写的,有什么问题可以给我留言 : 这个是升序排序的,想降序可以:for(i=NUM-1;i>=0;i--) cout<<str[i]<<' '; cout<<endl;