数组的排序:这个问题我在c 中 c++ 和 java 中都碰到过。 这种排序的方法有十几种之多, 我在这里将他们做一个小归纳 :
第一种 : 冒泡排序法 :
依次拿一个元素和它后面的元素比较 ,如果它后面的元素比它小则两者交换位置,在用刚刚交换的小的那个元素和它还没有交换的时候的位置的后一个元素比较……..简单来说就是小的数往上冒大的往下沉,所以称之为冒泡排序。
举个例子 : 我们建一个数组 array [ 10 ] ,并用随机数给它赋值(注: array .length 在java中表示数组的长度)。
核心代码:
for( int i = 0; i < array.length ; i++ ){
for( int j = i+1; j < array.length ; j++){
if( array [ i ] > array [j]){
int temp = array [ i ];
array [ i ] = array [ j ];
array [ j ] = temp;
}
}
}
优点: 便于理解,稳定
缺点: 计算效率太低
第二种 插入排序
先将数组的前面按大小顺序排好之后,再将后面的元素一个个的往排好的顺序的中插入
核心程序:
for(int i= 1;i<array.length;i++){
for(int j = i;j >0;j--){
if(array[j] < array[j-1]){
int temp = array[j];
array[j] = array[j -1];
array[j-1] = temp;
}
}
优点: 计算数组较小时,运算效率非常高;
缺点 :当数组数据很大时, 运算效率低;
第三种 选择排序
选择排序就是将数组中的最小元素通过引脚一一找出来
核心代码:
for ( int i= 0 ; i < array.length ; i ++ ){
int minindex = i ;
for( int j = i + 1; j < array.length ; j ++ ){
if ( array [ minindex ] > array [ j ] ){
minindex = j;
}
}
int temp = array [ i ];
array [ i ] = array [ minindex ];
array [ minindex ] = temp;
}
优点 : 便于理解, 工作效率较冒泡程序高
缺点 :不稳定
未完待续……
第一种 : 冒泡排序法 :
依次拿一个元素和它后面的元素比较 ,如果它后面的元素比它小则两者交换位置,在用刚刚交换的小的那个元素和它还没有交换的时候的位置的后一个元素比较……..简单来说就是小的数往上冒大的往下沉,所以称之为冒泡排序。
举个例子 : 我们建一个数组 array [ 10 ] ,并用随机数给它赋值(注: array .length 在java中表示数组的长度)。
核心代码:
for( int i = 0; i < array.length ; i++ ){
for( int j = i+1; j < array.length ; j++){
if( array [ i ] > array [j]){
int temp = array [ i ];
array [ i ] = array [ j ];
array [ j ] = temp;
}
}
}
优点: 便于理解,稳定
缺点: 计算效率太低
第二种 插入排序
先将数组的前面按大小顺序排好之后,再将后面的元素一个个的往排好的顺序的中插入
核心程序:
for(int i= 1;i<array.length;i++){
for(int j = i;j >0;j--){
if(array[j] < array[j-1]){
int temp = array[j];
array[j] = array[j -1];
array[j-1] = temp;
}
}
优点: 计算数组较小时,运算效率非常高;
缺点 :当数组数据很大时, 运算效率低;
第三种 选择排序
选择排序就是将数组中的最小元素通过引脚一一找出来
核心代码:
for ( int i= 0 ; i < array.length ; i ++ ){
int minindex = i ;
for( int j = i + 1; j < array.length ; j ++ ){
if ( array [ minindex ] > array [ j ] ){
minindex = j;
}
}
int temp = array [ i ];
array [ i ] = array [ minindex ];
array [ minindex ] = temp;
}
优点 : 便于理解, 工作效率较冒泡程序高
缺点 :不稳定
未完待续……