标签:select sort -- efi insert 有序 == ace temp
直接排序:
#include <iostream> using namespace std; #define Maxsize 1024 void InsertSort(int arr[], int n) { int temp, j; for(int i=1; i<n; ++i) { temp=arr[i]; j=i-1;//由于有序序列与无序序列是相邻的,i是无序序列的最左边的元素,i-1则是有序序列中最右边的元素。 while((j>=0) && (temp<arr[j])) { arr[j+1]=arr[j]; --j; } arr[j+1]=temp;//精妙之处 } } int main() { int n; int numbers[Maxsize]; while(cin >> n) { for(int i=0; i<n; ++i) cin >> numbers[i]; InsertSort(numbers, n); for(int i=0; i<n; ++i) cout << numbers[i] << ‘ ‘; cout << endl; } return 0; }
选择排序:
#include <iostream> using namespace std; #define Maxsize 1024 void SelectSort(int arr[], int n) { int k; int temp; for(int i=0; i<n; ++i) { k=i; for(int j=i+1; j<n; ++j) if(arr[k]>arr[j]) k=j; temp=arr[i]; arr[i]=arr[k]; arr[k]=temp; } } int main() { int n; int numbers[Maxsize]; while(cin >> n) { for(int i=0; i<n; ++i) cin >> numbers[i]; SelectSort(numbers, n); for(int i=0; i<n; ++i) cout << numbers[i] << ‘ ‘; cout << endl; } return 0; }
冒泡排序:
#include <iostream> using namespace std; #define Maxsize 1024 void BubleSort(int arr[], int n) { int flag, temp; for(int i=n-1; i>=1; --i) { flag=0; for(int j=1; j<=i; ++j) if(arr[j-1] > arr[j]) { temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp; flag=1; } if(flag==0) return;//经典之处 } } int main() { int n; int numbers[Maxsize]; while(cin >> n) { for(int i=0; i<n; ++i) cin >> numbers[i]; BubleSort(numbers, n); for(int i=0; i<n; ++i) cout << numbers[i] << ‘ ‘; cout << endl; } return 0; }
标签:select sort -- efi insert 有序 == ace temp
原文地址:http://www.cnblogs.com/CoSoBo/p/7774598.html