给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。
样例
样例 1:
输入: [3, 2, 1, 4, 5]
输出: [1, 2, 3, 4, 5]
样例解释:
返回排序后的数组。
样例 2:
输入: [1, 1, 2, 1, 1]
输出: [1, 1, 1, 1, 2]
样例解释:
返回排好序的数组。
js语言
/**
* @param A: an integer array
* @return:
*/
const sortIntegers = function (A) {
//选择排序--201ms
/*for(var i=0;i<A.length;i++){
var minIndex=i;
var temp;
for(var j=i+1;j<A.length;j++){
if(A[j]<A[minIndex]){
minIndex=j;
}
}
temp=A[i];
A[i]=A[minIndex];
A[minIndex]=temp;
}
return A;*/
//return A.sort(); //负数排序出错
//冒泡排序--201ms
for(var i=0;i<A.length-1;i++){
for(var j=0;j<A.length-1-i;j++){
var temp;
if(A[j]>A[j+1]){
temp=A[j];
A[j]=A[j+1];
A[j+1]=temp;
}
}
}
return A;
//插入排序--201ms
/*for(var i=1;i<A.length;i++){
for(var j=i;j>0;j--){
var temp;
if(A[j]<A[j-1]){
temp=A[j];
A[j]=A[j-1];
A[j-1]=temp;
}
}
}
return A;*/
}
分析:O(n*n)级别排序。注意负数。
java语言
public class Solution {
/**
* @param A: an integer array
* @return: nothing
*/
public void sortIntegers(int[] A) {
// write your code here
for(int i=1;i<A.length;i++){
for(int j=i;j>0;j--){
int temp;
if(A[j]<A[j-1]){
temp=A[j];
A[j]=A[j-1];
A[j-1]=temp;
}
}
}
for(int i=1;i<A.length;i++){
System.out.print(A[i]+"\t");
}
}
}
分析:注意返回为空,使用循环输出。