C语言编程:定义一个未排序的一维数组int a[10]={5,8,1,3,2,12,18,10,7,16}

定义一个未排序的一维数组int a[10]={5,8,1,3,2,12,18,10,7,16},
(1)用选择排序法对数组a中的元素进行大到小的排序,再用二分查找法查找数组a中是否有要查找的数x。

(2)用冒泡排序法对数组a中的元素进行小到大的排序,再用二分查找法查找数组a中是否有要查找的数x。

第1个回答  推荐于2018-04-11
void selectSort(int a[], int n) {
int i, j, nMinIndex;
for (i = 0; i < n; i++) { //总共找n次
nMinIndex = i; //先把第一个元素设为最小元素
for (j = i + 1; j < n; j++)
if (a[j] < a[nMinIndex])
nMinIndex = j;
Swap(a[i], a[nMinIndex]); //第i次,放到a[i]
}
}
int main(){
int iarr[] = {9,3,2,4,1,5,};
selectSort(iarr, sizeof(iarr)/sizeof(iarr[0])); //调用完iarr就排序好了

return 0;

}

#include <iostream>

using namespace std;/*添加*/
void printdata(int *data,int n)
{ for(int i=1; i<=n; i++)
cout<<data[i]<<" ";
cout<<endl;
}
void Bubble_Sort (int *p,int n)
{
int exchange=1,i=0; /*i初始化*/
while(exchange)
{
exchange=0;
for(int j=1; j<n-i; j++)
{ if(p[j]>p[j+1])
{ int temp=p[j]; p[j]=p[j+1]; p[j+1]=temp;
}
exchange=1; /*修改位置*/
}
i++; /*修改位置*/
}
}
int main()
{
int n=10;
int a[]={7,8,9,1,14,-1,26,0,4,78};
cout<<"冒泡排序:"<<endl;
cout<<"未排序的数为:";
printdata(a,n-2);
Bubble_Sort (a,n-2);
cout<<"排过序的数为:";
printdata(a,n-2);
cout<<endl;
return 0;
}

跟这个差不多,你稍微改下就可以了本回答被网友采纳