冒泡排序实际上是算最简单的排序方法我们可以进行的
int main()
{
int tmp=0;
int arr[]={1,4,5,9,8,7};
int sz=sizeof(arr)/sizeof(arr[0]);
for(int i=0;i<sz-1;i++)
{
for(int j=0;j<sz-i-1;j++)
{
if(arr[i]>arr[i+1])
{
tmp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=tmp;
}
}
}
for(int i=0;i<sz;i++)
{
cout<<arr[i]<<" ";
}
return 0;
}
我们每进行一次完整的排序就会将一个最大值或者最小值挪动到整个数组的最右边去
2.选择排序的方法
int findMaxPos(int arr[],int n) //寻找最大数据的位置
{
int max=arr[0];
int pos=0;
int i=0;
for(i=0;i<n;i++)
{
if(arr[i]>max)
{
max=arr[i];//这个可以用来找最大值
pos=i;
}
}
return pos;//这个时候我们返回的是位置 也就是最大值的位置
}
void selectionSort(int arr[],int n)
{
while(n>1)//这个进行n-1次循环操作处理
{
int pos=findMaxPos(arr,n);
int tmp=arr[pos];
arr[pos]=arr[n-1];//最大值和最后一个值进行交换
arr[n-1]=tmp;//这个时候将1值放进去
n--;//n-- 是为了使得
}
}
int main()
{
int arr[]={1,23,44,7,8,19};
int sz=sizeof(arr)/sizeof(arr[0]);
selectionSort(arr,sz);
for(int i=0;i<sz;i++)
{
cout<<arr[i]<<" ";
}
return 0;
}
这个数据就是进行的是我们将最大值找出来返回它的下标 然后将他们的下标进行操作处理
3.插入排序操作处理
void insert(int arr[],int n)
{
int key=arr[n];//这个是我们进行插入的数据
int i=n;//i代表的是下标
while(arr[i-1]>key)
{
arr[i]=arr[i-1];
i--;
if(i==0)//这个是处理的下标操作 不用越界
{
break;
}
}
arr[i]=key;
}
void insertSort(int arr[],int n)
{
for(int i=1;i<n;i++)
{
insert(arr,i);//这个是我们进行选择那几个顺序 我们从1开始选择 到n
}
}
int main()
{
int arr[]={1,22,3,7,18,9};
int sz=sizeof(arr)/sizeof(arr[0]);
int i;
insertSort(arr,sz);
for(i=0;i<sz;i++)
{
cout<<arr[i]<<" ";
}
return 0;
}