数据结构实验8

  1 #include<iostream>
  2 #include<string>
  3 using namespace std;
  4 #define Max_size 100
  5 
  6 void selectSort(int *arr,int n)    //简单选择排序 
  7 {
  8     int i,j,k,temp;
  9     for(i=0;i<n;i++){
 10         k = i;
 11         for(j=i+1;j<n;j++){
 12             if(arr[k]>arr[j])
 13                 k = j;         //最小值的索引 
 14         }
 15         temp = arr[i];
 16         arr[i] = arr[k];
 17         arr[k] = temp;
 18     }
 19 }
 20 
 21 //两两比较,将最大的值依次传递到尾部 
 22 void bubleSort(int *arr,int n)    //冒泡排序 
 23 {
 24     int temp,i,j,flag;
 25     for(i=n-1;i>=1;i--){
 26         flag = 1; //判断数是否是有序的
 27         for(j=1;j<=i;j++){
 28             if(arr[j-1]>arr[j]){
 29                 temp = arr[j];
 30                 arr[j] = arr[j-1];
 31                 arr[j-1] = temp;
 32                 
 33                 flag = 0;
 34             }
 35         }
 36         if(flag) //如果有序,将直接退出函数 
 37             return;
 38     } 
 39 }
 40 
 41 //将无序的数插入到有序的序列中 
 42 void insertSort(int*arr,int n)     //直接插入排序      
 43 {
 44     int temp,i,j;
 45     for(i=1;i<n;i++){
 46         temp = arr[i];
 47         j=i-1;
 48         while(j>=0&&temp<arr[j]){
 49             arr[j+1] = arr[j--];         
 50         }
 51         arr[j+1] = temp;
 52     }
 53 }
 54 
 55 void quickSort(int*arr,int low,int high)   //快速排序 
 56 {
 57     int i,j,temp;
 58     i = low;  j = high;
 59     if(low<high){
 60         temp = arr[low];
 61         while(i<j){
 62             while(j>i&&arr[j]>=temp) j--;
 63             if(i<j)
 64                 arr[i++] =arr[j];
 65             while(j>i&&arr[i]<temp)i++;
 66             if(i<j)
 67                 arr[j--] = arr[i];
 68         }
 69         arr[i] = temp;
 70         quickSort(arr,low,i-1);
 71         quickSort(arr,i+1,high);
 72     }
 73 }
 74 
 75 void PrintArr(int*arr,int n)
 76 {
 77     for(int i=0;i<n;i++)
 78         cout<<arr[i]<<" ";
 79     cout<<endl;
 80  } 
 81 
 82 int main()
 83 {
 84     int n;
 85     cout<<"输入数组1元素个数:";
 86     cin>>n;
 87     int arr1[Max_size];
 88     cout<<"输入数组元素:";
 89     for(int i=0;i<n;i++)
 90         cin>>arr1[i];
 91     cout<<"进行简单选择排序\n";
 92     selectSort(arr1,n);
 93     cout<<"输出元素:";
 94     PrintArr(arr1,n);
 95     cout<<"输入数组2元素个数:";
 96     cin>>n;
 97     int arr2[Max_size];
 98     cout<<"输入数组元素:";
 99     for(int i=0;i<n;i++)
100         cin>>arr2[i];
101     cout<<"进行冒泡排序\n";
102     bubleSort(arr2,n);
103     cout<<"输出元素:";
104     PrintArr(arr2,n);
105     cout<<"输入数组3元素个数:";
106     cin>>n;
107     int arr3[Max_size];
108     cout<<"输入数组元素:";
109     for(int i=0;i<n;i++)
110         cin>>arr3[i];
111     cout<<"进行快速排序\n";
112     quickSort(arr3,0,n-1);
113     cout<<"输出元素:";
114     PrintArr(arr3,n);
115     return 0;
116  } 

 

posted @ 2024-12-09 11:09  SuouYuki  阅读(4)  评论(0编辑  收藏  举报