您的位置:首页 > 编程语言

冒泡排序,选择排序的理解及代码实…

2017-04-06 10:04 344 查看
冒泡排序大数下沉1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应 该会是最大的数。3)针对所有的元素重复以上的步骤,除了最后一个。4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。for
(int i=0; i1; i++){每趟排序都会确定一个数,所以需要再循环len-i次,但因为每次都是 //相邻的两个数进行比较,为了a[j+1]不越界,让j循环到len-i-1时停止。   
for (int j=0; j  
       
        
   
if(arr[j]>arr[j+1]){  
     
      
     
  int temp = arr[j];  
     
      
     
  arr[j] = arr[j+1];  
     
      
     
  arr[j+1] = temp;  
     
      
    }  
        }  
 }  
 选择排序思想外层 len-1  里层 
j=i+1  j每一趟都是拿着一个元素与后面其他元素进行比较,找出最小值 void selectSort(int array[],int
len){1、确定需排序趟数for (int i = 0 ; i < len - 1; i++){ // 2、每一趟怎么处理   
for (int j = i + 1; j < len; j++) {   
    if (array[i] > array[j]){   
     
  int temp = array[i];   
     
  array[i] = array[j];   
     
  array[j] = temp;   
    }   }}}int arr[] = {..........};选择排序代码实现:
void
 
select_sort(
int
*a,
int
 
n)
{
    
register
 
int
 
i,j,min,t;
    
for
(i=0;i
    
{
        
min=i;
//查找最小值
        
for
(j=i+1;j
            
if
(a[min]>a[j])
                
min=j;
//交换
        
if
(min!=i)
        
{
            
t=a[min];
            
a[min]=a[i];
            
a[i]=t;
        
}
    
}
}
冒泡排序代码实现:

#include 
#define SIZE 8
 
void
 
bubble_sort(
int
 
a[], 
int
 
n);
 
void
 
bubble_sort(
int
 
a[], 
int
 
n)
{
    
int
 
i, j, temp;
    
for
 
(j = 0; j < n - 1; j++)
        
for
 
(i = 0; i < n - 1 - j; i++)
        
{
            
if
(a[i] > a[i + 1])
            
{
                
temp = a[i];
                
a[i] = a[i + 1];
                
a[i + 1] = temp;
            
}
        
}
}
 
int
 
main()
{
    
int
 
number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};
    
int
 
i;
    
bubble_sort(number, SIZE);
    
for
 
(i = 0; i < SIZE; i++)
    
{
        
printf
(
"%d"
, number[i]);
    
}
    
printf
(
"\n"
);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: