高级语言C++程序设计 (第二版) 刘景、周玉龙編
高级语言C++程序设计 (第二版) 刘景、周玉龙编
第六章指针、引用与动态内存分配 ■61选择排序算法 选择排序算法思想:每次从无序的序列中选出最大者, 交换到序列的左端,这样,无序的序列越来越短,经 过n1步,达到排序的目的 [有序序列](无序序列) 选出最大交换到左端 选择排序算法: //program6-1 cpp #indlude <iostream h> #indude <stdlib. h> #indlude <iomanip. h> void main(void)
第六章 指针、引用与动态内存分配 ◼ 6.1 选择排序算法 选择排序算法思想:每次从无序的序列中选出最大者, 交换到序列的左端,这样,无序的序列越来越短,经 过n-1步,达到排序的目的。 [有序序列](无序序列) ➢ 选择排序算法: //program6-1.cpp #include <iostream.h> #include <stdlib.h> #include <iomanip.h> void main(void) { 选出最大交换到左端
第六章指针、引用与动态内存分配 void main(void) int i, seed, n =20 cout<<end<<“seed=? cin>>seed; cout <endl srand(seed);∥/始化随机种子 float list[20], pf for(=0;i<n;i++)∥成n个随机数并输出 i!ti]= rando;∥/产生0~32767之间的随机数。 cout<<setw(8)<< clist[i];/每个随机数的输出宽度为8 f(i+1)%8==0) cout<<endl
第六章 指针、引用与动态内存分配 void main(void) { int i,seed,n=20; cout<<endl<<“seed=”; cin>>seed; cout<<endl; srand(seed);//初始化随机种子 float list[20],*pf; for(i=0;i<n;i++) //生成n个随机数并输出 { list[i]=rand();//产生0~32767之间的随机数。 cout<<setw(8)<<list[i];//每个随机数的输出宽度为8 if((i+1)%8==0) cout<<endl; }
第六章指针、引用与动态内存分配 cout< <endl pf=&list[o] sort(pfn);∥(n个数排序 i=0 while(i<ni cout<<sew(8)<<isti];/输出排序的n个数 ++ f(9%8==0) cout< <endl cout< <endl void swap1( float* a float*b){∥)交换两个变量的值 fie loat temp; temp=*a; a=*b; *b=temp
第六章 指针、引用与动态内存分配 cout<<endl; pf=&list[0]; ssort(pf,n); //对n个数排序 i=0; while(i<n){ cout<<setw(8)<<list[i];//输出排序的n个数 i++; if(i%8==0) cout<<endl; } cout<<endl; } void swap1(float *a,float *b) { //交换两个变量的值 float temp; temp=*a;*a=*b;*b=temp;}
第六章指针、引用与动态内存分配 void sort(float *a, int m) int i,j, index; float elem; for(i=0;<m-1i++) eem=*(a+i);/输出排序的n个数 index=i forGe=i+1;j<m;j++) if((a+j)>elem elem=*(a+j) index=j swap1(a+i, a+index)
第六章 指针、引用与动态内存分配 void ssort(float *a,int m) { int i,j,index; float elem; for(i=0;i<m-1;i++){ elem=*(a+i);//输出排序的n个数 index=i; for(j=i+1;j<m;j++) if(*(a+j)>elem){ elem=*(a+j); index=j; } swap1(a+i,a+index); } }