标签: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