选择排序----数组实现

来源:互联网 发布:python使用指南 下载 编辑:程序博客网 时间:2024/06/05 00:19

/*select_sort.cpp--------选择排序的数组实现*/

/*

         算法:

                   最小值初始化为第一个。依次和第23……个进行比较,如果第一个大于他们,那么就把最小值的下标变为他们。

                   比较这一行以后把第一个元素和最小值的下表进行交换,这样就完成了第一轮比较,第一个问最小值。进行第二轮比较。

                   最小值初始化为第二个。依次比较……

     链表的实现:链表实现同数组实现不同。基本思路:新建一个链表,从就链表中选择最小值插入到新链表的末尾。                                              

*/

/*-------------------数组实现------------------*/

/*

#include <stdio.h>

 

#define LEN 5

void init_arr(int *pArr,int len);

void show_arr(int *pArr,int len);

void sort_arr(int *pArr,int len);

void swap(int *pArr,int temp1,int temp2);

 

int main(void)

{

         intarr[LEN]; 

         init_arr(arr,LEN);

         show_arr(arr,LEN);

         printf("开始排序\n");

         sort_arr(arr,LEN);       

         show_arr(arr,LEN); 

         return0;

}

void swap(int *pArr,int temp1,int temp2)

{

         inttemp; 

         temp=pArr[temp1];

         pArr[temp1]=pArr[temp2];

         pArr[temp2]=temp; 

         return;

}

void show_arr(int *pArr,int len)

{

         int i; 

         for(i=0;i<len;i++)

         {

                   printf("%d",pArr[i]);

         }

         printf("\n"); 

         return;

}

void init_arr(int *pArr,int len)

{

         inti;

         intvalue; 

         for(i=0;i<len;i++)

         {

                   printf("请输入第%d个元素的值:",i+1);

                   scanf("%d",&value);

                   pArr[i]=value;

         } 

         return;

}

void sort_arr(int *pArr,int len)

{

         inti,j;

         intmin;//最小值的下标 

         for(i=0;i<len-1;i++)

         {

                   min=i;

                   for(j=i+1;j<len;j++)

                   {

                            if(pArr[min]>pArr[j])

                            {

                                     min=j;

                            }

                   }

                   if(i!=min)

                   {

                            swap(pArr,min,i);//这里出错了,想当然的写成了swap(pArr,min,j);出现了windows可联机检查解决解决方案这里用了没有赋值的变量j

                   }

         }

}

*/

 

0 0
原创粉丝点击