选择法、冒泡、直插发排序
View Code
#include "stdafx.h"
#include<iostream>
#include<ctime>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a[20];
srand((unsigned)time(0));//新版本的是64位,srand是32为
for(int i=0;i<20;i++){
a[i]=rand()%100+1;
}
//选择法排序(循环n-1次)思路:每一次找出适合的元素放在正确的位置上
/*for(int i=0;i<19;i++){
for(int j=i+1;j<20;j++){
if(a[i]>a[j]){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}*/
//冒泡法排 思路:两两比较,大的下沉,小的上浮,每一轮都会找出最大的一个元素
for(int i=1;i<20;i++){
for(int j=0;j<20-i;j++){
if(a[i]<a[j]){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
//比如循环到i=5的时候
//关键部分是j=0;j<i;j++这部分循环,循环过后 最大数已经放到a[j] 里面了
//输出所有
for(int i=1;i<21;i++){
if(i%7==0)
cout<<a[i-1]<<"\t"<<endl;
else
cout<<a[i-1]<<"\t";
}
int b;
cin>>b;
return 0;
}
#include<iostream>
#include<ctime>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a[20];
srand((unsigned)time(0));//新版本的是64位,srand是32为
for(int i=0;i<20;i++){
a[i]=rand()%100+1;
}
//选择法排序(循环n-1次)思路:每一次找出适合的元素放在正确的位置上
/*for(int i=0;i<19;i++){
for(int j=i+1;j<20;j++){
if(a[i]>a[j]){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}*/
//冒泡法排 思路:两两比较,大的下沉,小的上浮,每一轮都会找出最大的一个元素
for(int i=1;i<20;i++){
for(int j=0;j<20-i;j++){
if(a[i]<a[j]){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
//比如循环到i=5的时候
//关键部分是j=0;j<i;j++这部分循环,循环过后 最大数已经放到a[j] 里面了
//输出所有
for(int i=1;i<21;i++){
if(i%7==0)
cout<<a[i-1]<<"\t"<<endl;
else
cout<<a[i-1]<<"\t";
}
int b;
cin>>b;
return 0;
}
直插发:
View Code
#include "stdafx.h"
#include<iostream>
using namespace std;
void insert_sort(int * lstNum, size_t nSize)
{
if (nSize < 2)
return;
int nTemp;
size_t i = 1, a;
while (i < nSize)
{
nTemp = lstNum[i];
a = i - 1;
while (lstNum[a] > nTemp && a >= 0) // a >= 0 is very import!
{
lstNum[a + 1] = lstNum[a];
a--;
}
lstNum[a + 1] = nTemp;
i++;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[]={4,5,1,3};
insert_sort(a,4);
for(int j=0;j<4;j++){
cout<<a[j]<<endl;
}
return 0;
}
#include<iostream>
using namespace std;
void insert_sort(int * lstNum, size_t nSize)
{
if (nSize < 2)
return;
int nTemp;
size_t i = 1, a;
while (i < nSize)
{
nTemp = lstNum[i];
a = i - 1;
while (lstNum[a] > nTemp && a >= 0) // a >= 0 is very import!
{
lstNum[a + 1] = lstNum[a];
a--;
}
lstNum[a + 1] = nTemp;
i++;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[]={4,5,1,3};
insert_sort(a,4);
for(int j=0;j<4;j++){
cout<<a[j]<<endl;
}
return 0;
}
个人签名:天行健,君子以自强不息