鸽了5,6天没更新了,罪过罪过。
那么来尝试一下全部的排序算法吧,领扣463.整数排序
题目描述
给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。
class Solution {
public:
/**
* @param A: an integer array
* @return: nothing
/
void sortIntegers(vector<int> &A) {
// write your code here
}
};
开门见山,先整个选择排序的
插入排序顾名思义就是对全部数据都进行一次选择,选出为排序部分的最大或者最小的
1先将数组分为两部分,一部分是已经排好了的,一部分是未排的。
2从未排的里面找出最小的一个
3把这个最小的放到排好那有序部分的最后
4继续2和3直到每一个都被排完或者排到倒数第二个。
代码如下
class Solution {
public:
/*
* @param A: an integer array
* @return: nothing
*/
void sortIntegers(vector<int> &A) {
int length;//数组长度
int temp,min;
length=A.size();
for(int i=0;i<length-1;i++)//对每一个数进行选择(除了最后一个)
{//写i<length也没关系只不过是多一个步骤
//找出未插入部分的最小值
min=i;
for(int j=i+1;j<length;j++)
{
if(A[j]<A[min])
min=j;
}
//交换找到的最小值与已排序的部分的末尾值
temp = A[i];
A[i] = A[min];
A[min] = temp;
}
}
};
排序算法集锦(1)选择排序——菜鸡进化史
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。