sorting - select sort
来源:互联网 发布:八维网络工程学院 编辑:程序博客网 时间:2024/06/06 15:32
#include "stdio.h"#include "string.h"#define MAX_LIST 50typedef struct _SqList { int data[MAX_LIST]; int length;}SqList;void swap( SqList* L, unsigned index1, unsigned index2 ){ if( index1 >= L->length || index2 >= L->length ) return; if( index1 == index2 ) return; L->data[index1] = L->data[index1] ^ L->data[index2]; L->data[index2] = L->data[index1] ^ L->data[index2]; L->data[index1] = L->data[index1] ^ L->data[index2];}//Select sort is similar to bubble sort, but only swaps when necessary//it at most swap one time for each positionvoid SelectSort(SqList* L){ int i, j, minpos; for( i = 0; i < L->length - 1; i++ ) { //minpos saves the index of minimal value, initialize to i minpos = i; //every outer loop pick the smallest from the rear of the array for( j = i + 1; j < L->length; j++ ) { //compare element at j and local minimal at minpos if( L->data[j] < L->data[minpos] ) { //update index only, no swapping //select sort saves the temporary minimal index, //whilst bubble sort saves the value at location i minpos = j; } } if( minpos != i ) swap(L, i, minpos ); }}int main(){ SqList d; int intarr[] = {1,10,23,48,65,31,-21,9,88,100}; memcpy( d.data, intarr, sizeof(intarr)); d.length = sizeof(intarr)/sizeof(int); int index = 0; printf("Original array:\n"); for( ; index < d.length; index++ ) printf(" %d", d.data[index] ); printf("\nSelect sort...\n"); SelectSort( &d ); for( index = 0; index < d.length; index++ ) printf(" %d", d.data[index] ); printf("\n"); return 0;}
0 0
- sorting - select sort
- Sorting Algorithms ------[Insertion Sort]
- 【Leetcode】Sort List (Sorting)
- Sorting - heap sort
- Sorting - bubble sort
- sorting - insert sort
- sorting - shell sort
- sorting - quick sort
- sorting - merge sort
- Sorting Algorithm-Bubble Sort
- Sorting Algorithm-Shell Sort
- Sorting Algorithm-Heap Sort
- Sorting Algorithm-Merging Sort
- Sorting Algorithm-Quick Sort
- 【CF398E】Sorting Permutations(sort)
- select-sort
- Select Sort
- Select Sort
- rpm:RPM should not be used directly install RPM packages, use Alien instead!
- 深入理解Java内存模型(三)——顺序一致性
- a+++b
- SoapUI
- java比较两个日期大小
- sorting - select sort
- struts2 返回json数据
- JS动态增加行
- 欢迎使用CSDN-markdown编辑器
- Effective STL第十九节 相等和等价的区别
- phpbb数据库找回root密码
- The project cannot be built until build path errors are resolved的解决方法
- 3、图示rfid系统组成及其功能。
- Java Really force file sync/flush