C++编程:编写一个冒泡排序程序,要求使用动态数组,先输入要排序的数字数量n,再依次输入数字。

如题所述

第1个回答  2012-05-30
/*
数据个数n = 5
a[1/5] = 43
a[2/5] = 12
a[3/5] = 78
a[4/5] = 56
a[5/5] = 10
10 12 43 56 78
请按任意键继续. . .
*/
#include <stdio.h>
#include <stdlib.h>

void sort(int a[], int n) {
int i,j,t;
for(i = 0; i < n - 1; i ++) {
for(j = i + 1; j < n; ++j) {
if(a[j] < a[i]) {
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
}

int main() {
int i,n,*a;
printf("数据个数n = ");
scanf("%d",&n);
a = (int *)malloc(n * sizeof(int));
for(i = 0; i < n; ++i) {
printf("a[%d/%d] = ",i + 1, n);
scanf("%d",&a[i]);
}
sort(a,n);
for(i = 0; i < n; ++i) printf("%d ",a[i]);
printf("\n");
free(a);
return 0;
}本回答被提问者采纳
第2个回答  2012-05-30
//---------------------------------------------------------------------------
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

int main(void)
{
int *a,n;
cin>>n;
a=new int[n];
if (!a) return (-1);

for (int i=0; i<n; i++) {
cin>>a[i];
}

for (int i=1; i<=n; i++) {
for (int j=0; j<n-i; j++) {
if (a[j]>a[j+1]) {
int tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}

for (int i=0; i<n; i++) {
cout<<a[i]<<'\t';
}
cout<<endl;

delete[] a;
return 0;
}
//---------------------------------------------------------------------------

C++程序:输入n个数,将这些数从大到小排列输出
include<iostream>#include<window.h>using namespace std;int main(){ \/\/指定数组长度 int n; cin>>n; \/\/动态分配内存 int* p=new int[n]; \/\/顺序输入 for(int i=0;i<n;i++) cin>>p[i]; \/\/冒泡排序 int t=0; for(int i=1;i<n;i++) ...

求用c++写一个main函数冒泡排序 输入一个数组 分步骤写出每一步的结果...
int main() { int i,j,t,a[10]={20,34,54,33,56,78,91,11,76,49};printf("原来的数组:\\n");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\\n");for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} pr...

C++: 用bubblesort写个排顺序的程序。
看你这意思吧,print函数是用来打印这个数组的。sortlist函数是用来输入这个数组数值的bubblesort函数是用来冒泡排序的。所以我就按照你的要求给你写了个 #include <iostream> using namespace std;void print(int data[],int n){ cout<<"\\nPrint: ";for (int i=0; i<n; i++){ cout<<data...

编写程序,使用“冒泡排序法”实现任意十个数的排序
int sort[10],i,j,tMax; cout<<"请输入10个数:"<<endl; for(i=0;i<10;i++) cin>>sort[i]; for(i=1;i<=9;i++) \/\/10个数需要410210-1趟比1653较专 for(j=0;j<10-i;j++) \/\/第i趟需要10-i次比较 if(sort[j]>sort[j+1]){ tMax = sort[j]; sort[j] = sort[j+1]; sort...

C语言编程:将输入的N个整数采用冒泡排序按照从小到大的顺序排列并且输出...
void BubbleSort(int L[]) { \/\/ 对顺序表L作冒泡排序 int i,j,fini = 0;for (i = 1; i < n && !fini; i++) { fini = 1;for (j = 1; j <= n-i; j++)if (L[j] > L[j+1]) { L[0] = L[j];L[j] = L[j+1];L[j+1] = L[0];fini = 0;} } } ...

泡沫排列法
冒泡排序:include <iostream> using namespace std;int main(){ int array[10];int temp;for(int a=0;a<10;a++)\/\/输入数据 { cout<<"请输入第"<<a+1<<"数\\n";cin>>array[a];} for(int i=0;i<9;i++)for(int j=0;j<9;j++)\/\/排序,从小到大 if(array[j]>array[j+1]...

一个c++程序,输入一个数n,然后输入n个数,让这n个数从大到小排序的算法...
C++的STL里自带了一个叫做sort的函数。sort的复杂度是O(nlogn)。O(n^2)的冒泡与它相比简直天差地别,相比我们写的快速排序还有些优化,用起来也方便 include <iostream> include <algorithm> using namespace std;int main(){ int n,b[2000] = {0};cin>>n;for(int i = 1;i <= n;...

C++ 冒泡排序法
using namespace std;void print(int arr[],int n){ for(int j=0;j<n;j++){ cout<<arr[j]<<"";} cout<<endl;} void BubbleSort(int arr[],int n){ for(int i=0;i<n-1;i++){ for(int j=0;j<n-i-1;j++){ if(arr[j]>arr[j+1]){ int temp=arr[j];arr[j]=...

C语言:编写一个程序用冒泡排序实现升序排列
printf ("\\n");return 0;} 运行结果 请输入十个数:a[1]=7 a[2]=8 a[3]=9 a[4]=6 a[5]=5 a[6]=4 a[7]=1 a[8]=2 a[9]=3 a[10]=99 由小到大的顺序为:1,2,3,4,5,6,7,8,9,99。冒泡排序算法的原理如下:1、比较相邻的元素。如果第一个比第二个大,就交换...

在C++中,随意输入四个数,然后按照由小到大的顺序输出 ,的程序怎么写啊...
循环比较,前一个跟后一个比较大小,小的放前面 (这一步可以通过建立一个中间变量来存储比较后得到的较小值)比如说数组为:n[],第一轮比较n[0]和n[1],将较小值赋给中间变量n,大的赋给n[1],然后再将n(较小值)赋给n[0],以此类推。输出,就OK了。嘿嘿,具体代码忘了怎么写了,...

相似回答